Drei MYSQL SELECTs in einem Array
Xerico
- php
1 Matti Mäkitalo0 Auge0 Xerico
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
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
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 :)
Wie wäre es mit UNION? Dann kannst du die drei SELECTs schon MySQL-seitig verheiraten.
Vielen Dank, habs mit UNION hinbekommen ;-)
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
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
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?
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!