Kompakter SQL-Code oder PHP-Code gesucht.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
array
auslese
befehl
beispiel
code
datensatz
eckigen klammern
fertig beitrag
frage
gleiche tabellen
gleichen aufbau
problem
sache
schleife
tabelle
union
verschiedene spalten
wirklichkeit
zug
-
...und wie gesagt. Man kann auch nicht wissen und dann hat man wieder eine Frage
Also.... ich habe 3 gleiche Tabellen. db1 db2 und db3. Ich möchte aus denen auslesen. Jedoch sollte das alles "in einem Zug" passieren. Die jetzige Variante ist in etwa so:
<?php //DB connecten $query = mysql_query("SELECT a,b,c,time FROM db1 WHERE d = '1'"); while ($row = mysql_fetch_object($query)) { array_push($array,array($row->time,$row->a." ".$row->b." ".$row->b)); } $query = mysql_query("SELECT a,b,c,time FROM db2 WHERE d = '2'"); while ($row = mysql_fetch_object($query)) { array_push($array,array($row->time,$row->a." ".$row->b." ".$row->b)); } $query = mysql_query("SELECT a,b,c,time FROM db3 WHERE d = '3'"); while ($row = mysql_fetch_object($query)) { array_push($array,array($row->time,$row->a." ".$row->b." ".$row->b)); } array_multisort($array[0],$array[1]); foreach ($array as $val) { echo "Zeit: ".$var[0]." - ".$var[1]."<br>"; } ?>
Frage ist, wie man die Sache kompakter machen kann bzw. alles in einem SQL-Befehl zusammenfassen kann. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Nicht drei gleiche Tabellen verwenden, sondern eine, mehrere Datenbanken mit dem gleichen Aufbau machen keinen Sinn. Ansonsten schaue dir UNION an, das wird dir warscheinlich weiterhelfen.
-
meisnt du wirklich 3 dbs?
oder 3 tabellen? so siehts nämlich eher aus^^
Bei mehreren Tabell machst dus einfach so:
SELECT tbl1.a, tbl2.b, tbl3.c, (...) FROM tbl1, tbl2, tbl3 WHERE tbl1.d = '1' and tbl2.d = '2' and tbl3.d = '3'
PS: liegt das an mir oder warum kann ich keine eckigen klammern mehr schreiben??? -
@dragon12: Tabllen
Ähm....... das war nur ein Beispiel ^^ In wirklichkeit ist es eine Tabelle in der es aber 3 Möglichkeiten gibt, wann ein Datensatz ausgelesen werden muss und dieser muss dann entsprechend spezifische Werte zurückgeben. Also bei der Abfrage 1 "SELECT time_a as time" und bei Abfrage 2 wird folgendes gemacht: "Select time_b as time". Das Problem ist ebenhalt, dass bei verschiedenen Bedingungen verschiedene Spalten zurück geben werden sollen aber zum gleichen Returncode führen sollen -.- -
Benutz doch einfach eine Schleife ...
<?php //DB connecten for ($i = 1; $i < 4; $i++) { $query = mysql_query("SELECT a,b,c,time FROM db".$i." WHERE d = '".$i."'"); while ($row = mysql_fetch_object($query)) { array_push($array,array($row->time,$row->a." ".$row->b." ".$row->b)); } } array_multisort($array[0],$array[1]); foreach ($array as $val) { echo "Zeit: ".$var[0]." - ".$var[1]."<br>"; } ?>
-
Kann mich da nur Trueweb anschließen... also wenn du das schon so i*** machen willst, dann mit Union
$sql = "SELECT a,b,c,time FROM db1 WHERE d = '1' UNION SELECT a,b,c,time FROM db2 WHERE d = '2' UNION SELECT a,b,c,time FROM db3 WHERE d = '3';
und fertig
Beitrag geändert: 29.8.2008 14:50:32 von scout -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage