sql >> Database >  >> RDS >> Mysql

Php - MySQL selecteert gegevens uit tabel en werkt vervolgens dezelfde tabel bij

Als eerste:

In uw tweede SQL-query:

$sqla="UPDATE table SET count='$new_count'";

u moet specificeren welke rij/rijen u wilt bijwerken. Hiervoor moet je WHERE . gebruiken clausule.

Bijvoorbeeld:

$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";

Als tweede:

Je mist } in uw toestand, wat ook het probleem kan zijn. Als ik uw code op een afstand plaats, ziet het er als volgt uit:

$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";
  }

Is uw aandoening (begonnen op de tweede regel) geëindigd met } correct?

Als derde:

Uitvoer opslaan van mysql_fetch_array en mysql_query naar een variabele en gebruik deze variabele vervolgens in uw voorwaarden:

$data = mysql_fetch_array($sql);
if($data) { ...

En

$result = mysql_query($sqla);
if($result) { ...

Voetnoten:

Het is niet bekend of de tabelnaam die u gebruikt inderdaad table wordt genoemd .

Als dat zo is, dan is dat een door MySQL gereserveerd woord en vereist het speciale aandacht, zoals het in vinkjes plaatsen of het een naam geven aan iets anders dan een gereserveerd woord.

D.w.z.:

SELECT * FROM `table`

en

UPDATE `table`

Referentie:




  1. Oci8-extensie installeren in linux voor php?

  2. 3 manieren om een ​​getal op te maken als een percentage in PostgreSQL

  3. 'Kan geen verbinding maken met MySQL-server op \'db\' Django-Restframework met Mysql in docker

  4. Index op tijdstempel:functies in indexexpressie moeten worden gemarkeerd als IMMUTABLE