Xerico: Drei MYSQL SELECTs in einem Array

Hallo Leute

Ich habe 3 Tabellen die gleich sind,
nun möchte ich alle 3 Selects in einem Array packen und dann per Array Sortieren nach Titel z.b.

Aus den Selects habe ich dan TITEL, TEXT und ZAHL

wie kann ich alle 3 Selects in einem Array packen und mit PHP ausgeben?

Vielen Dank im voraus
Xerico

  1. Hi,

    Ich habe 3 Tabellen die gleich sind,
    nun möchte ich alle 3 Selects in einem Array packen und dann per Array Sortieren nach Titel z.b.

    Es ist zumindest schonmal fragwürdig, wenn du gleiche Tabellenstrukturen in unterschiedlichen Tabellen hast. Bist du sicher, dass dein Datenmodell da wirklich gut gewählt ist und du nicht z.B. die gleichen Felder in eine gemeinsame Tabelle packen willst?

    Aus den Selects habe ich dan TITEL, TEXT und ZAHL

    wie kann ich alle 3 Selects in einem Array packen und mit PHP ausgeben?

    Wie wäre es mit UNION? Dann kannst du die drei SELECTs schon MySQL-seitig verheiraten.

    Bis die Tage,
    Matti

    1. Wie wäre es mit UNION? Dann kannst du die drei SELECTs schon MySQL-seitig verheiraten.

      Wenn ich UNION geschrieben hätte, wäre binnen 10 Sekunden ein meckern gekommen :)

    2. Wie wäre es mit UNION? Dann kannst du die drei SELECTs schon MySQL-seitig verheiraten.

      Vielen Dank, habs mit UNION hinbekommen ;-)

  2. Hallo

    Ich habe 3 Tabellen die gleich sind,

    HTML-Tabellen? Datenbanktabellen? Wenn letztere, warum dann drei, da sie doch gleich sind, also gleich strukturiert sind?

    nun möchte ich alle 3 Selects in einem Array packen und dann per Array Sortieren nach Titel z.b.

    Warum nicht ein Select daraus machen, dass in der Abfrage gleich die Sortierung enthält?

    SELECT  
      TITEL,  
      TEXT,  
      ZAHL  
    FROM  
      tabelle  
    ORDER BY  
      ZAHL ASC
    

    Aus den Selects habe ich dan TITEL, TEXT und ZAHL

    wie kann ich alle 3 Selects in einem Array packen und mit PHP ausgeben?

    Du kannst den Kram auch zu Fuß per PHP erledigen. Es gibt in den Array-Funktionen auch welche, die mehrere Arrays mergen und sortieren.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
    Veranstaltungsdatenbank Vdb 0.3
  3. Datenbanken und sind nicht ganz gleich, haben alle ein TITEL, TEXT und eine ZAHL

    das heisst ich muss 3 selects machen
    aber ich weiss nicht wie ich diese in einem einzigen Array verpacken

    habe dann z.b ein

      
    while($row = mysql_fetch_array($result))  
    {  
     echo $row[titel].','.$row[titel].','.$row[zahl];  
    }  
      
    while($row1 = mysql_fetch_array($result1))  
    {  
     echo $row1[titel].','.$row1[titel].','.$row1[zahl];  
    }  
      
    while($row2 = mysql_fetch_array($result2))  
    {  
     echo $row2[titel].','.$row2[titel].','.$row2[zahl];  
    }  
    
    

    jetzt brauch ich die alle in einem Array, damit ich diese sortieren kann nach TITEL und dann mit einem FOREACH anzeien kann..

    Kann mir jemand ein beispielcode geben?

    Danke

    1. Datenbanken und sind nicht ganz gleich, haben alle ein TITEL, TEXT und eine ZAHL

      Was jetzt? Datenbanken (Kataloge) oder Tabellen?

      das heisst ich muss 3 selects machen

      Nein, einen - und eine Ergebnismenge mit UNION bilden.

      jetzt brauch ich die alle in einem Array, damit ich diese sortieren kann nach TITEL und dann mit einem FOREACH anzeien kann..

      array_merge() kann arrays Kombinieren - aber dann musst du sie trotzdem noch sortieren. Das kostet unglaublich viel performance im vergleich dazu, wenn du das die Datenbank machen kannst, die genau für diesen Zweck geschaffen ist.

      Kann mir jemand ein beispielcode geben?

      RTFM oder besser dieses.

    2. Hi!

      das heisst ich muss 3 selects machen
      aber ich weiss nicht wie ich diese in einem einzigen Array verpacken

      Du erzeugst eins vor dem DBMS-Abfragen und hängst in den drei Fetch-Schleifen die dabei gewonnenen Daten immer an dieses eine Array. Wenn du die Daten nicht getrennt brauchst, brauchst du keine drei Arrays und sie auch nicht zu mergen. Da die Daten aber sowieso gleichartig aufgebaut sind, dann sind - wie schon empfohlen - drei mit UNION verknüpfte SELECTs einfacher. Aus PHP-Sicht hast du dann nämlich nur eine Abfrage abzusenden und auszuwerten.

      Lo!