Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Php - MySQL seleciona dados da tabela e atualiza a mesma tabela


Como primeiro:

Em sua segunda consulta SQL:
$sqla="UPDATE table SET count='$new_count'";

você precisa especificar quais linhas você deseja atualizar. Para isso você deve usar WHERE cláusula.

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

Como segundo:

Você não tem } na sua condição, o que também pode ser o problema. Se eu espaçar seu código, ficará assim:
$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";
  }

Sua condição (iniciada na segunda linha) terminou com } corretamente?

Como terceiro:

Salvar saída de mysql_fetch_array e mysql_query para uma variável e, em seguida, use essa variável em suas condições:
$data = mysql_fetch_array($sql);
if($data) { ...

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

Notas de rodapé:

Não se sabe se o nome da tabela que você está usando é realmente chamado de table .

Se for, então essa é uma palavra reservada do MySQL e requer atenção especial, como envolvê-la em ticks ou nomeá-la para algo diferente de uma palavra reservada.

Ou seja:
SELECT * FROM `table`

e
UPDATE `table`

Referência: