sql >> Databasteknik >  >> RDS >> Mysql

while($row =mysql_fetch_assoc($result)) - Hur går jag till $row?

Låt oss säga att var och en av raderna i din databas ser ut så här...

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

När du tilldelar din fråga returneras till en variabel som skickas genom mysql_fetch_assoc() med en while-loop isolerar varje pass en hel rad. Varav du kan plocka isär manuellt genom arraynyckelreferens ($array['product_id'] ) eller genom att använda en foreach loop. Jag tror att problemet du har är att du blandar ihop det här. Med tabelllayouten ovan i åtanke kan du göra något i stil med följande:

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
}

Titta på den här raden i din kod:if ($product['id'] == $id) { }

Jag tror att du förmodligen menar if ($row['id'] == $id) { } istället.



  1. Mysql bygger dynamiskt frågesträng i en lagrad procedur baserad på logik

  2. använd kommandot database_name i PostgreSQL

  3. SQL Server String Sammansättning med Null

  4. Hur NVL() fungerar i MariaDB