Daten aus 3 Tabellen lesen

parafi

Mitglied
Hi

Ich muss aus drei Tabellen Daten auslesen, weiss jedoch nicht wie ich dies anstellen soll.

Tabelle: bestellung
bestellung_nr
user_id
ersatzteil_id
menge
preis

dazu benötige ich von der Tabelle user
vornamen
nachnamen

und von der Tabelle ersatzteil brauche ich
name

Wie muss ich das Ganze darstellen, um an meine Daten zu kommen?
 
Ich rate jetzt mal ins blaue und nehme an, das du in der ersatzteil und in der user noch ein Feldnamens ID hast (falls die Bezeichnung nicht stimmt bitte noch ändern).

Dann könntest du es so machen.
PHP:
 $select="SELECT 
     bestellung.bestellung_nr,
     bestellung.ersatzteil_id,
     bestellung.menge,
     bestellung.preis,
     user.id,
     user.vornamen,
     user.nachnamen,
     ersatzteil.name
  FROM
        bestellung,
        user,
        ersatzteil
     WHERE
           bestellung.user_id=user.id 
        AND
           bestellung.ersatzteil_id=ersatzteil.id";
Das ist nur eine angehensweise. Weitere gibt es z.b. mit innerjoin und co.
 
Zuletzt bearbeitet:
Ok habs so versucht.

Nur komme ich nicht in meine Schleife rein.

PHP:
	$sql="SELECT  
  	   bestellung.bestellung_id, 
  	   bestellung.ersatzteil_id, 
  	   bestellung.menge, 
  	   bestellung.preis, 
   	   user.user_id, 
   	   user.vorname, 
   	   user.nachname, 
   	   ersatzteile.name 
 	 FROM 
  		bestellung, 
        user, 
        ersatzteile 
     WHERE 
           bestellung.user_id=user.user_id  
        AND 
           bestellung.ersatzteil_id=ersatzteile.ersatzteile_id"; 
      
 	   
 	 $result = mysql_query($sql);
 	 $html = "<table>";
 	 
 	 while($row = mysql_fetch_array($result))
	{

Es wird nichts in $result geschrieben..
weshalb?
 
PHP:
$sql="SELECT  
  		b.bestellung_id, 
  		b.ersatzteil_id, 
  		b.menge, 
  		b.preis, 
  		u.user_id, 
  		u.vorname, 
  		u.nachname, 
  		e.name 
 	 FROM 
  		bestellung AS b, 
  		user AS u, 
  		ersatzteile AS e
 	 WHERE 
  		b.user_id=u.user_id AND
  		e.ersatzteile_id=b.ersatzteil_id"; 
 	   
 	 $result = mysql_query($sql);
 	 $html = "<table>";
 	 
 	 while($row = mysql_fetch_array($result))
	{

Mal ein wenig übersichlicher gestaltet und so müsste es eventuell auch gehen ;)
Achja.. überprüf mal ob das richtig geschrieben ist: ersatzteile_id
Einmal hast du es als ersatzteile_id in der Tabelle Ersatzteile und einmal als ersatzteil_id in der Bestellung..
 
Zuletzt bearbeitet:
Wenn du den Fehler nicht findest, probier mal ein SQL-Fehler die ausgeben, zu lassen.
PHP:
$result = mysql_query($sql) or die(mysql_error());
 
Zurück