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

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

Řekněme, že každý z řádků ve vaší databázi vypadá takto...

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

Když přiřadíte dotaz, vraťte se k proměnné předané prostřednictvím mysql_fetch_assoc() pomocí while smyčky každý průchod izoluje celý řádek. Z nichž můžete ručně rozdělit pomocí odkazu na klíč pole ($array['product_id'] ) nebo pomocí smyčky foreach. Myslím, že problém, který máš, je v tom, že si to pleteš. S přihlédnutím k výše uvedenému příkladu rozložení tabulky můžete udělat něco takového:

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
}

Podívejte se na tento řádek v kódu:if ($product['id'] == $id) { }

Myslím, že pravděpodobně myslíte if ($row['id'] == $id) { } místo toho.



  1. Jak nainstalovat SQL Server na Linux

  2. Příklady ASIN() v SQL Server

  3. Migrace databáze Oracle z AWS EC2 na AWS RDS, část 4

  4. Jarní přechod zabezpečení na autentizaci Ldap a databázová oprávnění