Comme premier :
Dans votre seconde requête SQL :
$sqla="UPDATE table SET count='$new_count'";
vous devez spécifier la ou les lignes que vous souhaitez mettre à jour. Pour cela, vous devez utiliser WHERE
clause.
Par exemple :
$sqla="UPDATE table SET count='$new_count' WHERE id='$id'";
Comme second :
Il vous manque }
dans votre état, ce qui peut aussi être le problème. Si j'espace votre code, il ressemblera à :
$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";
}
Votre état (commencé à la deuxième ligne) se termine-t-il par }
correctement ?
En troisième :
Enregistrer la sortie de mysql_fetch_array
et mysql_query
à une variable, puis utilisez cette variable dans vos conditions :
$data = mysql_fetch_array($sql);
if($data) { ...
Et
$result = mysql_query($sqla);
if($result) { ...
Notes de bas de page :
On ne sait pas si le nom de table que vous utilisez s'appelle effectivement table
.
Si tel est le cas, il s'agit d'un mot réservé MySQL et il nécessite une attention particulière, par exemple en l'entourant de ticks ou en lui donnant un nom autre qu'un mot réservé.
C'est-à-dire :
SELECT * FROM `table`
et
UPDATE `table`
Référence :