Daten aus 2 Tabellen auslesen

nobaschwa

Mitglied
Ich hab da jetzt noch ein Problem Ich habe drei tabellen:

Filme:
FilmID
Titel
Genre usw

User:
UserID
Username

Filmbesitzer:
UserID
FilmID
zeit (hab ich neu hinzugefügt...ist vom Typ timestamp)


so jetzt wollte ich mit folgender Abfrage sowohl die Filmdaten als auch die Zeit auslesen.

PHP:
$sql = "SELECT 
			Filme.FilmID,
			Filme.Titel,
			Filme.Genre,
			Filme.Sprachen,
			Filme.FSK,
			Filme.spezial,
			Filme.verliehen,
			Filmbesitzer.zeit
		FROM 
			User,Filme,Filmbesitzer 
		WHERE 
			Filmbesitzer.FilmID=Filme.FilmID 
			AND Filmbesitzer.UserID=User.UserID 
			AND User.Username = '".$_GET['liste']."'
       ORDER BY
          Titel ASC";

Für die Filmdaten klappt das auch aber wenn ich die Zeit ausgeben möchte kommt

Notice: Undefined index: zeit in /Library/WebServer/Documents/dvd/besucher/anzeige.php on line 177

ausgeben möchte ich die mit

PHP:
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
         
echo $row['zeit'];
}


Für die Filmdaten klappt das auch mit zb
PHP:
echo $row['Titel'];

Hat vielleicht irgendjemand eine Idee warum das nicht funktioniert?

bis denne
 
Hab ich gemacht, da kommt dann das raus:

array(7) { ["FilmID"]=> string(3) "103" ["Titel"]=> string(14) "American Pie 1" ["Genre"]=> string(7) "Komödie" ["Sprachen"]=> string(7) "Deutsch" ["FSK"]=> string(0) "" ["spezial"]=> string(0) "" ["verliehen"]=> string(0) "" }


Das stimmt auch soweit, aber zeit steht gar nicht drinne.
 
Bist du dir sicher, dass ein entsprechender Eintrag in der Tabelle "Filmbesitzer" existiert, bei dem die ID mit den IDs der beiden anderen Tabellen (User, Filme) übereinstimmt?
durch 3 seperate Abfragen zu lösen.

Möglicherweise hängt es auch damit zusammen, dass es dem Script nicht passt, dass die ID-Spalten in den Tabellen Filmbesitzer und User den selben Namen haben ("UserID").

Du kannst außerdem versuchen, das Ganze in 3 seperaten Abfragen zu lösen. Ist zwar mehr Schreibarbeit, aber evtl. einfacher...
 
Ansich irritiert das doch weil zeit eigentlich da sein sollte.

Ansonsten warum benützt du kein JOIN?

mal gucken ob ichs auf die Schnelle hinbekomme:

Code:
SELECT
    f.FilmID,
    f.Titel,
    f.Genre,
    f.Sprachen,
    f.FSK,
    f.spezial,
    f.verliehen,
    fb.zeit
FROM
    Filme AS f
LEFT JOIN Filmbesitzer AS fb, User AS u
ON f.FilmID = fb.FilmID AND fb.UserID = u.UserID
WHERE
    u.Username = '".$_GET['liste']."'
ORDER BY
    f.Titel ASC"
 
@split

ja die spalte zeit gibt es und da steht auch was drin. Die Abfrage an sich funktioniert...er zeigt mir ja alles an was ich will nur die zeit nicht.

@sicaine

mit joins hatte ich mich noch nicht beschäftigt. Ich versuche es jetzt einfach mal so wie du es vorgeschlagen hast und melde mich dann nochmal.

Aber schonmal Danke an euch beide!
 
Zurück