Mysql
 sql >> Base de données >  >> RDS >> Mysql

Php - MySQL sélectionne les données de la table, puis met à jour la même table

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 :