[PHP] Array in der MySQL Abfrage

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Spo0n22, 18. Mai 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. Mai 2012
    Array in der MySQL Abfrage

    Hallo Leute,

    mich würde gerne interessieren ob es denn möglich ist, innerhalb einer MySQL Abfrage eine Array zu erstellen.

    Ich habe nun folgendes Problem. Ich habe mehrere Artikel, welche in mehrere Kategorien eingeordnet werden nun möchte ich mit einer Abfrage ausgeben, in welchen Kategorien sich der Artikel befindet.

    Meine Abfrage lautet im Moment so:
    PHP:
    SELECT  FROM article a
            

    LEFT JOIN categorie_to_article c2a ON q
    . articleID  c2a . articleID
    LEFT JOIN categories c ON c
    . catID  c2a . catID
            
    WHERE a
    . status  1
            
    GROUP BY a
    . articleID
    Nun gebe ich es wie folgt aus:
    PHP:
    while( $row  $db -> fetch_array ( $query )){

    echo 
    $row [ 'article' ];
    echo 
    $row [ 'categorie' ];

    }
    Nun soll bei "$row['categorie']" alle Kategorien ausgegeben werden, in welchen sich der Artikel befindet, z. B. "Liebe, Roman". Bei der jetztigen Abfrage wird immer nur eine Kategorie wiedergegeben.

    Oder sollte eine 2.te Abfrage erfolgen, in der die Kategorien wiedergegeben werden?

    MFG
     
  2. 18. Mai 2012
    AW: Array in der MySQL Abfrage

    Als Array gehts nicht, aber du kannst alle Kategorien in einem String zurückgeben:
    Code:
    CREATE TABLE article2category (
     artID int,
     catID int
    );
    
    INSERT INTO article2category (artID, catID) VALUES
    (1, 1),
    (1, 2),
    (1, 3),
    (2, 1),
    (2, 3),
    (3, 3),
    (4, 4),
    (4, 1),
    (4, 2),
    (5, 1);
    
    CREATE TABLE articles (
     artID int,
     name char(20)
    );
    
    INSERT INTO articles (artID, name) VALUES
    (1, 'Artikel 1'),
    (4, 'Artikel 4'),
    (3, 'Artikel 3'),
    (5, 'Artikel 5');
    
    CREATE TABLE categories (
     catID int,
     name char(20)
    );
    
    INSERT INTO categories (catID, name) VALUES
    (1, 'Kategorie 1'),
    (2, 'Kategorie 2'),
    (3, 'Kategorie 3'),
    (4, 'Kategorie 4');
    
    Query:
    Code:
    SELECT articles.name, (SELECT GROUP_CONCAT(DISTINCT categories.name SEPARATOR ', ') FROM article2category LEFT JOIN (categories) ON (categories.catID = article2category.catID) WHERE article2category.artID = articles.artID) AS categories
    FROM articles
    
     
    1 Person gefällt das.
  3. 18. Mai 2012
    AW: Array in der MySQL Abfrage

    Ich danke Dir hat, alles wunderbar geklappt
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.