Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP - MySQL wybierz dane z tabeli, a następnie zaktualizuj tę samą tabelę

Jako pierwszy:

W drugim zapytaniu SQL:

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

musisz określić, który wiersz/wiersze chcesz zaktualizować. W tym celu musisz użyć WHERE klauzula.

Na przykład:

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

Jako drugi:

Brakuje } w twoim stanie, co też może być problemem. Jeśli spędzę twój kod, będzie to wyglądało tak:

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

Czy twój warunek (zaczynający się w drugiej linii) zakończył się } poprawnie?

Jako trzeci:

Zapisz wynik mysql_fetch_array i mysql_query do zmiennej, a następnie użyj tej zmiennej w swoich warunkach:

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

I

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

Przypisy:

Nie wiadomo, czy nazwa tabeli, której używasz, rzeczywiście nazywa się table .

Jeśli tak, to jest to słowo zastrzeżone MySQL i wymaga szczególnej uwagi, np. zawijając je w tiki lub nazywając czymś innym niż słowo zastrzeżone.

Czyli:

SELECT * FROM `table`

i

UPDATE `table`

Odniesienie:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj dziesiętny przechowywany jako varchar na datetime

  2. Przygotowane oświadczenie nie pozwala mi wywołać $mysqli->stmt_init()

  3. baza danych mysql inżynierii wstecznej do tworzenia aplikacji django

  4. Generowanie i odczytywanie kodów kreskowych

  5. InnoDB wstawia się bardzo wolno i zwalnia