Forum Doku Wiki Blog

Forumsarchiv 2005, September
sql Join drei tabellen

archivierte Beiträge lesen

  1. (DATENBANK) sql Join drei tabellen von Kai, 19. 09. 2005, 15:31

sql Join drei tabellen

Der folgende Beitrag wurde am 19. 09. 2005, 15:31 Uhr von Kai veröffentlicht.

Hallo liebe Leuts im Forum,
ich habe ein Problem und zwar habe ich in einer my-sql Datenbank drei tabellen
1. Tabelle: Reservierungen mit den Feldern: id, f_reservierer, f_raum, f_fach, f_stunde, buchungsdatum
2. Tabelle: Faecher mit den Feldern: id, bezeichnung wobei dann id=f_fach
3. Tabelle: Raeume mit den Feldern: id, bezeichnung und id=f_raum

Jetzt möchte ich Folgende dinge nach der Bedingung f_reserveirer="$nutzer_id" ausgeben lassen und zwar die id,buchungsdatum und f_stunde aus Reservierungen, die bezeichnung aus Faecher und die bezeichnung aus Raeume...

Habe das mal so Probiert klappt aber mal überhaupt nicht:

$qry = "SELECT a.*,b.f_raum,c.f_fach FROM Reservierungen AS a, Faecher AS b, Raeume AS c WHERE a.f_reservierer='$nutzer_id' AND a.f_raum=b.bezeichnung AND a.f_fach_id=c.bezeichnung"
if (($res = mysql_query($qry)) && mysql_num_rows($res))
  {
   while ($row = mysql_fetch_object($res))
     { $id = $row->a.id;
    $buchungsdatum =$row->buchungsdatum;
    $stunde = $row->f_stunde;
    $raum = $row->f_raum;
    $fach = $row->f_fach;
    echo "ID: $id <br />";
    echo "Datum: $buchungsdatum <br />";
    echo "Raum: $raum <br />";
    echo "Fach: $fach <br />";
    echo "Stunde: $stunde <br />";
   }
  }
das ist aber bestimmt total falsch und ich bräuchte mal ein par Hilfestellungen. Schonmal danke, Kai.

sql Join drei tabellen

Der folgende Beitrag wurde am 19. 09. 2005, 16:27 Uhr von MrWurf veröffentlicht.

Hiho

> Habe das mal so Probiert klappt aber mal überhaupt nicht:
etwas mehr Details könnten es ruhig sein.

Deine Joins sind anscheinend per Zufallsgenerator gesetzt:

> a.f_raum=b.bezeichnung
f_raum ist laut deiner Beschreibung die id und nicht die Bezeichnung.

> AND a.f_fach_id=c.bezeichnung"
hier dasselbe, da werden Äpfel mit Birnen verglichen.

>   {
>    while ($row = mysql_fetch_object($res))
>      { $id = $row->a.id;
>     $buchungsdatum =$row->buchungsdatum;
>     $stunde = $row->f_stunde;
>     $raum = $row->f_raum;
>     $fach = $row->f_fach;
>     echo "ID: $id <br />";
>     echo "Datum: $buchungsdatum <br />";
>     echo "Raum: $raum <br />";
>     echo "Fach: $fach <br />";
>     echo "Stunde: $stunde <br />";
>    }
>   }

1. Sieh erstmal zu, dass dein SQL stimmt, prüfe das mit einem SQL-Tool deiner Wahl. Vorher ist dein PHP-Code reichlich irrelevant.
2. Joins werden über einen Vergleich der korrespondierenden Felder hergestellt. Welche zusammengehören, hast du ja schon hingeschrieben.
3. Sobald das SQL stimmt, setze es in PHP um.

ich hoffe, da waren 1-2 brauchbare Tipps dabei...
Gruß
Wurf

sql Join drei tabellen

Der folgende Beitrag wurde am 19. 09. 2005, 16:32 Uhr von Kai veröffentlicht.

Ja, danke ich hatte da wohl einiges durcheinander, habe den SQl query jetzt erstmal direkt in der Datenbank "getestet" und dann war die Ausgabe auch kein Problem mehr.

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4