Schleife läuft nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Schleife läuft nicht

    Hallo. Ich möchte in einer Tabelle pro Zeile ein datensatz einer MySQL-Datenbank angezeigt bekommen. Nur leider funktioniert meine Schleife nicht. Woran könnte das denn liegen? Die Varialen für den Datenbankzugriff sind richtig gesetzt. Habe ich getestet. Arrays sind mit Werten belegt. Nur mit Schleife stimmt was nicht.

    Quellcode

    1. $counter=0;
    2. $product_lesen = 'select `username`,`product` from `'.$dbpref.'products` WHERE `username` = "'.$_SESSION["mtd_user"].'"';
    3. $product_einlesen = mysql_query($product_lesen);
    4. $product = mysql_fetch_array($product_einlesen);
    5. $ko_product_lesen = 'select `product`,`description` from `'.$dbpref.'ko_products` WHERE `product` = "'.$product[product].'"';
    6. $ko_product_einlesen = mysql_query($ko_product_lesen);
    7. $ko_product = mysql_fetch_array($ko_product_einlesen);
    8. $news_line=mysql_num_rows($product_einlesen);
    9. echo '<table width="100%" border="0" cellspacing="0" cellpadding="5">';
    10. if ($news_line > 0) {
    11. while ($ko_product1 = mysql_fetch_array($ko_product_einlesen)){
    12. echo '<tr>';
    13. echo '<td width="60%">'.$ko_product1[description].'</td>';
    14. echo '<td width="20%">&nbsp;</td>';
    15. echo '<td width="20%">&nbsp;</td>';
    16. echo '</tr>';
    17. $counter++;
    18. }
    19. }
    20. echo '</table>';
    21. ?>
    Alles anzeigen
  • Wo wir bei Zeile 11 sind: Müsste es da nicht mysql_fetch_assoc(), immerhin nutzt du in Zeile 13 $ko_product1 als assoziatives Array. Zeile 7 muss aber wriklich weg, sonst übersprungst du den ersten Eintrag.

    Edit: Haaaaalt zurück, ich hab grad gelesen das der default-Parameter MYSQL_BOTH ist, mein Fehler. Aber in Zeile 13 benutzt du $ko_product1[description] und ich denke das gehört zumindest in "Anführungszeichen" oder ein $ für die Variable davor.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • :D Genau... und nochmal auf deutsch: mysql_fetch_array ist das selbe wie mysql_fetch_assoc, nur dass man auch über Zahlen drauf zugreifen kann (z.B. array[1], array[2])

    @mycros: Habe dir deinen Code mal ein wenig optimiert.
    Beim Query wird ein s.g. CROSS JOIN verwendet. Der ist am einfachsten zu verstehen.

    Außerdem habe ich die Abfrage ob es keine Einträge gibt noch um die Tabelle herum gemacht. Sonst wird eine Tabelle ohne Zeilen ausgegeben.

    Probier den Code einfach mal:

    Quellcode

    1. $counter = 0;
    2. $query = 'SELECT B.`product`, B.`description` FROM `'.$dbpref.'products` A, `'.$dbpref.'ko_products` B
    3. WHERE A.`username` = "'.$_SESSION["mtd_user"].'" AND B.`product` = A.product; ';
    4. $ko_product_einlesen = mysql_query($query)or die($query);
    5. $count = mysql_num_rows($ko_product_einlesen);
    6. if ($count > 0) {
    7. echo '<table width="100%" border="0" cellspacing="0" cellpadding="5">';
    8. while ($ko_product1 = mysql_fetch_array($ko_product_einlesen)) {
    9. echo '<tr>';
    10. echo ' <td width="60%">'.$ko_product1['description'].'</td>';
    11. echo ' <td width="20%">&nbsp;</td>';
    12. echo ' <td width="20%">&nbsp;</td>';
    13. echo '</tr>';
    14. $counter++;
    15. }
    16. echo '</table>';
    17. }
    Alles anzeigen
  • "d0nUt" schrieb:

    :D Genau... und nochmal auf deutsch: mysql_fetch_array ist das selbe wie mysql_fetch_assoc, nur dass man auch über Zahlen drauf zugreifen kann (z.B. array[1], array[2])

    Genauer: mysql_fetch_assoc($result) ist das gleiche wie mysql_fetch_array($result, MYSQL_ASSOC); und mysql_fetch_row($result) ist das gleiche wie mysql_fetch_array($result, MYSQL_NUM);
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]