Mysql
 sql >> Base de données >  >> RDS >> Mysql

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

Disons que chacune des lignes de votre base de données ressemble à ceci...

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

Lorsque vous affectez votre requête, retournez à une variable transmise par mysql_fetch_assoc() en utilisant une boucle while, chaque passe isolera une ligne entière. Dont vous pouvez séparer manuellement par référence de clé de tableau ($array['product_id'] ) ou en utilisant une boucle foreach. Je pense que le problème que vous rencontrez est que vous mélangez tout cela. En gardant à l'esprit l'exemple de disposition de table ci-dessus, vous pouvez faire quelque chose comme ceci :

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
}

Regardez cette ligne dans votre code :if ($product['id'] == $id) { }

Je pense que vous voulez probablement dire if ($row['id'] == $id) { } à la place.