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: