SQL Abfrage liefert nur ersten Datensatz

Thema wurde von Sven (Sky-PC), 10. Februar 2017 erstellt.

  1. Sven (Sky-PC)

    Sven (Sky-PC) Erfahrener Benutzer

    Registriert seit:
    27. September 2013
    Beiträge:
    49
    Danke erhalten:
    15
    Danke vergeben:
    9
    #1 Sven (Sky-PC), 10. Februar 2017
    Zuletzt bearbeitet: 12. Februar 2017
    Moin!

    Ich bräuchte einmal eure Hilfe. Ich versuche gerade eine eigene Erweiterung zu optimieren, die im Bestellvorgang prüft, in welche Kategorien ein Artikel einsortiert wurde. Bei Artikeln mit mehr als einer Kategorie schlägt dies allerdings fehl.

    Hier einmal der entsprechende Code an der Stelle:

    PHP:
    $products $_SESSION['cart']->get_products();
    for (
    $i 0$n sizeof($products); $i $n$i++) {
        
    $id_array explode('{'$products[$i]['id']);
        
    $id $id_array[0];
        
    $cat_abfrage xtc_db_query("SELECT categories_id FROM products_to_categories WHERE products_id = '".$id."'");
        
    $cat_ergebnis xtc_db_fetch_array($cat_abfrage);
        
    // Debug-Ausgabe:
        
    echo '<div style="color:orange">';
        echo 
    'ID: '.$id.'</br>';
        echo 
    'CAT_ERGEBNIS: ';
        
    print_r($cat_ergebnis);
        echo 
    '</div>';
    }
    Bei Einträgen in der products_to_categories, wo eine Produkt-ID mehrere Kategorie-IDs hat, bekomme ich im Array $cat_ergebnis jedoch trotzdem immer nur genau einen Eintrag angezeigt. Wie schaffe ich es, dass alle Kategorie-IDs aufgelistet werden?

    EDIT:
    Falls es noch jemanden gibt, der mal kurzzeitig mit einem Brett vorm Kopf herumrennt oder den Wald vor lauter Bäumen nicht mehr sieht hier die Auflösung:

    PHP:
    $products $_SESSION['cart']->get_products();
    for (
    $i 0$n sizeof($products); $i $n$i++) {
        
    $id_array explode('{'$products[$i]['id']);
        
    $id $id_array[0];
        
    $cat_abfrage xtc_db_query("SELECT * FROM products_to_categories WHERE products_id = '".$id."'");
        while(
    $cat_ergebnis xtc_db_fetch_array($cat_abfrage))
        {
            
    $catArray[] = $cat_ergebnis['categories_id'];
        }
        
    // Debug-Ausgabe:
        
    echo '<div style="color:orange">';
        echo 
    'ID: '.$id.'</br>';
        echo 
    'CAT_ERGEBNIS: ';
        
    print_r($catArray);
        echo 
    '</div>';
    }
    Damit werden dann auch mehrere Kategorien aufgelistet und nicht nur ein Eintrag in der Datenbank geliefert.