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

while($row =mysql_fetch_assoc($result)) - Jak foreach $row?

Załóżmy, że każdy wiersz w Twojej bazie danych wygląda tak...

[product_id][product_name][product_description][product_price]

Po przypisaniu zapytania powróć do zmiennej przekazanej przez mysql_fetch_assoc() za pomocą pętli while każde przejście spowoduje wyizolowanie całego wiersza. Z czego możesz rozdzielić ręcznie przez odwołanie do klucza tablicy ($array['product_id'] ) lub za pomocą pętli foreach. Myślę, że problem, który masz, polega na tym, że mieszasz to. Mając na uwadze powyższy przykładowy układ tabeli, możesz zrobić coś takiego:

while ($tableRow = mysql_fetch_assoc($query)) { // Loops 3 times if there are 3 returned rows... etc

    foreach ($tableRow as $key => $value) { // Loops 4 times because there are 4 columns
        echo $value;
        echo $tableRow[$key]; // Same output as previous line
    }
    echo $tableRow['product_id']; // Echos 3 times each row's product_id value
}

Spójrz na ten wiersz w swoim kodzie:if ($product['id'] == $id) { }

Myślę, że prawdopodobnie masz na myśli if ($row['id'] == $id) { } zamiast tego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wysokie użycie procesora przez MySQL

  2. Jak wygenerować cały skrypt bazy danych w MySQL Workbench?

  3. Dlaczego Entity Framework generuje zagnieżdżone zapytania SQL?

  4. MySQL:Dodaj kolumnę sekwencji na podstawie innego pola

  5. Jak zapisać wynik zapytania MySQL w pliku .CSV?