Mysql
 sql >> Datenbank >  >> RDS >> Mysql

while($row =mysql_fetch_assoc($result)) - Wie wird $row aufgerufen?

Nehmen wir an, dass jede der Zeilen in Ihrer Datenbank so aussieht...

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

Wenn Sie Ihre Abfragerückgabe einer Variablen zuweisen, die durch mysql_fetch_assoc() geleitet wird Bei Verwendung einer While-Schleife isoliert jeder Durchgang eine ganze Zeile. Davon können Sie manuell per Array-Key-Referenz ($array['product_id']) zerlegen ) oder mithilfe einer foreach-Schleife. Ich denke, das Problem, das Sie haben, ist, dass Sie das verwechseln. Unter Berücksichtigung des obigen Beispiel-Tabellenlayouts könnten Sie etwa so vorgehen:

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
}

Sehen Sie sich diese Zeile in Ihrem Code an:if ($product['id'] == $id) { }

Ich denke, Sie meinen wahrscheinlich if ($row['id'] == $id) { } stattdessen.