Mysql
 sql >> Database >  >> RDS >> Mysql

Php - MySQL seleziona i dati dalla tabella, quindi aggiorna la stessa tabella

Come primo:

Nella tua seconda query SQL:

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

è necessario specificare quale riga/righe si desidera aggiornare. Per questo devi usare WHERE clausola.

Ad esempio:

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

Come secondo:

Manca } nelle tue condizioni, che può essere anche il problema. Se spazio il tuo codice, sarà simile a:

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

La tua condizione (iniziata dalla seconda riga) è terminata con } correttamente?

Come terzo:

Salva l'output di mysql_fetch_array e mysql_query a una variabile e quindi usa questa variabile nelle tue condizioni:

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

E

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

Note a piè di pagina:

Non è noto se il nome della tabella che stai utilizzando sia effettivamente chiamato table .

Se lo è, allora si tratta di una parola riservata MySQL e richiede un'attenzione speciale, ad esempio racchiudendola in segni di spunta o nominandola con qualcosa di diverso da una parola riservata.

Cioè:

SELECT * FROM `table`

e

UPDATE `table`

Riferimento: