sql >> Databáze >  >> RDS >> Mysql

Php - MySQL vybere data z tabulky a poté aktualizuje stejnou tabulku

Jako první:

Ve vašem druhém dotazu SQL:

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

musíte určit, který řádek/řádky chcete aktualizovat. K tomu musíte použít WHERE doložka.

Například:

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

Jako druhý:

Chybí vám } ve vašem stavu, což může být také problém. Pokud váš kód rozložím, bude to vypadat takto:

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

Je vaše podmínka (začíná na druhém řádku) zakončena } správně?

Jako třetí:

Uložte výstup mysql_fetch_array a mysql_query na proměnnou a poté tuto proměnnou použijte ve svých podmínkách:

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

A

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

Poznámky pod čarou:

Není známo, zda se název tabulky, který používáte, skutečně nazývá table .

Pokud ano, pak se jedná o vyhrazené slovo MySQL a vyžaduje zvláštní pozornost, například jeho zabalení do zaškrtávacích políček nebo jeho pojmenování na něco jiného než vyhrazené slovo.

T.j.:

SELECT * FROM `table`

a

UPDATE `table`

Reference:




  1. Přihlášení funguje pouze pro posledního uživatele v databázi

  2. django auth Uživatel ořezává pole e-mailu

  3. Jak provést příkaz SQL s parametry v bash skriptu

  4. Jsou PL/pgSQL a SQL v PostgreSQL obě na stejné úrovni jako standard SQL/PSM, nikoli pouze jako standard SQL?