sql >> Database teknologi >  >> RDS >> Mysql

while($row =mysql_fetch_assoc($result)) - Hvordan foreacher man $row?

Lad os sige, at hver af rækkerne i din database ser sådan ud...

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

Når du tildeler din forespørgsel, returneres til en variabel, der er gået gennem mysql_fetch_assoc() ved at bruge en while-løkke, vil hver gang isolere en hel række. Hvoraf du kan adskille manuelt ved array-nøglereference ($array['product_id'] ) eller ved at bruge en foreach loop. Jeg tror, ​​at problemet du har er, at du blander det sammen. Med ovenstående eksempel på tabellayout i tankerne kan du gøre noget i stil med følgende:

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
}

Se på denne linje i din kode:if ($product['id'] == $id) { }

Jeg tror nok, du mener if ($row['id'] == $id) { } i stedet.



  1. Hvorfor tager Microsoft SQL Server 2012-forespørgsler minutter over JDBC 4.0, men sekund(er) i Management Studio?

  2. Ser du en tabel for ændringer i MySQL?

  3. Hvordan migrerer man en PostgreSQL-database til en SQLServer-database?

  4. Doktrin 2 DQL MySQL svarende til ROUND()?