sql >> Base de Datos >  >> RDS >> Mysql

Php:MySQL selecciona datos de la tabla, luego actualiza la misma tabla

Como primero:

En su segunda consulta SQL:

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

debe especificar qué fila/filas desea actualizar. Para esto debes usar WHERE cláusula.

Por ejemplo:

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

Como segundo:

Te falta } en su condición, que también puede ser el problema. Si espacio su código, se verá así:

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

¿Su condición (comenzó en la segunda línea) terminó con }? correctamente?

Como tercero:

Guardar salida de mysql_fetch_array y mysql_query a una variable y luego use esta variable en sus condiciones:

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

Y

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

Notas al pie:

No se sabe si el nombre de la tabla que está utilizando se llama table .

Si lo es, entonces es una palabra reservada de MySQL y requiere una atención especial, como envolverla en ticks o nombrarla con algo que no sea una palabra reservada.

Es decir:

SELECT * FROM `table`

y

UPDATE `table`

Referencia: