Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP - MySQL wählt Daten aus der Tabelle aus und aktualisiert dann dieselbe Tabelle

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: