Daten aus mehreren Tabellen einer Datenbank auslesen
Dadsche
- php
Hallo,
ich möchte aus mehreren Tabellen meiner Datenbank Daten auslesen. Wie muss es dann aussehen?
So??
$result = mysql_query("SELECT * FROM user AND userinfo", $link);
while($data=mysql_fetch_array($result))
Diese Möglichkeit ist auf jedenfall FALSCH es wird ein Fehler aus gegeben, wenn ich ein ',' dazwischen mache werden statt 3 Einträgen 9 ausgelesen (dreimal jeweils die Gleichen). Wenn ich nichts dazwischen mache wird in nichts von 'userinfo' ausgegeben.
MfG Dadsche
yo,
wenn man daten aus mehreren tabellen auslesen will, dann benutzt man einen sogenannten join, wobei diese sich noch in verschiedene kategorien unterteilen. zwei davon sind der inner join und der outer join. je nachdem welche aufgabenstellung du hast, muss du den entsprechenden join benutzen. eine der vielen möglichen ist folgende syntax:
SELECT tabell1.spalte1, tabelle1.spalte2, tabelle2, spalte1
FROM tabelle1, tabelle2
WHERE tabelle1.joinspalte = tabelle2.joinspalte;
das ist ein plastisches beispiel für einen inner join. nach der select klausel kommen die spalten, die du angezeigt haben willst. man sollte hier nicht das * benutzen, auch wenn man alle spalten aller tabellen angezeigt haben will.
nach der from klausel kommen die einzelnen tabellen. genauso wie die spalten werde sie durch ein komma voneinander getrennt.
in der where klausel kommen alle deine bedingungen rein, unter anderem auch, wie die beiden tabellen miteinander verknüpft sind. vergisst man diese join verbindung, dann führt er das sogenante karthesische produkt aus, was dazu führt, dass du mehr datensätze bekommst, als dir lieb ist, da er jeden datensatz der einen tabelle mit jeden datensatz der anderen tabelle ausgibt.
Ilja
öhmmm Danke werde es ausprobiern.
Gruß Dadsche
Danke hat funktioniert!!!