Als erstes:
In Ihrer zweiten SQL-Abfrage:
$sqla="UPDATE table SET count='$new_count'";
Sie müssen angeben, welche Zeile(n) Sie aktualisieren möchten. Dazu müssen Sie WHERE
verwenden Klausel.
Zum Beispiel:
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
Als zweites:
Ihnen fehlt }
in deinem Zustand, was auch das Problem sein kann. Wenn ich Ihren Code platziere, sieht er so aus:
$sql=mysql_query("SELECT * FROM table WHERE id='$id'");
if($data=mysql_fetch_array($sql))
{
$count=$data['count'];
$new_count=$count+1;
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
if(mysql_query($sqla))
{
echo "success";
}
Ist Ihre Bedingung (beginnend in der zweiten Zeile) mit }
beendet richtig?
Als Dritter:
Speichern Sie die Ausgabe von mysql_fetch_array
und mysql_query
in eine Variable und verwenden Sie diese Variable dann in Ihren Bedingungen:
$data = mysql_fetch_array($sql);
if($data) { ...
Und
$result = mysql_query($sqla);
if($result) { ...
Fußnoten:
Es ist nicht bekannt, ob der von Ihnen verwendete Tabellenname tatsächlich table
heißt .
Wenn dies der Fall ist, dann ist das ein MySQL-reserviertes Wort und erfordert besondere Aufmerksamkeit, z. B. indem es in Ticks verpackt oder in etwas anderes als ein reserviertes Wort umbenannt wird.
D.h.:
SELECT * FROM `table`
und
UPDATE `table`
Referenz: