Industriemeister
Mitglied
Hi ich zerbreche mir seit Stunden den Kopf ob die Abfrage so laufen darf.,
Und komme immer wieder zu dem Ergebnis. Ja... so muss das richtig sein.
Ich habe Zwei Tabellen: hoerspiele und hoerspiele_tracks ich verbinde beide mit einem Feld CDID über LEFT JOIN wie ich es hier gelernt habe.
CDID ist in hoerspiel ein index mit auto_increment und in beiden int(2) um zweistellige Werte ausgeben zu können.
Da ich dies mal nur eine CD pro Seite mit $_GET['SQL'] aufrufe brauche ich (denke ich) also nur für die Tracks eine Schleife. Der Code sieht (auszugsweise) also so aus:
Daten aus der Tabelle hoerspiele
..............................
.....Daten aus Tabelle hoerspiele......
Ich habe keine Fehlermeldung.
Die Daten aus hoerspiel werden richtig ausgegeben. Doch die aus hoerspiel_track fehlen.
Die Strucktur der Abfrage (also das die while-schleife nur für die Tracks da ist) muss doch so OK sein. Oder Täusche ich mich?
Ich hatte es zu erst mit einem Marker probiert. Bis mir einfiel... das ich ja nur die tracks mehrfach abfragen muss.
------------------ UpDate: mit der Strucktur meine ich folgendes: in Zeile
1: $ergebnis = mysql_query("SELECT * FROM hoerspiele_tracks s LEFT JOIN hoerspiele st USING(CDID) WHERE url ='" . mysql_real_escape_string($_GET['SQL']) . "' "); // verbinde beide Tabellen
2: ($row = mysql_fetch_object($ergebnis)); // lese Daten
es folgen Daten aus Tabelle hoerspiel
50: while($rowtrack = mysql_fetch_object($ergebnis));
{
es werden nun die Zeilen 51 bis 70 so lange abgearbeitet bis kein Track mit der gleichen CDID vorhanden ist
70: }
weitere Daten der CD
80: ?>
Und komme immer wieder zu dem Ergebnis. Ja... so muss das richtig sein.
Ich habe Zwei Tabellen: hoerspiele und hoerspiele_tracks ich verbinde beide mit einem Feld CDID über LEFT JOIN wie ich es hier gelernt habe.
CDID ist in hoerspiel ein index mit auto_increment und in beiden int(2) um zweistellige Werte ausgeben zu können.
Da ich dies mal nur eine CD pro Seite mit $_GET['SQL'] aufrufe brauche ich (denke ich) also nur für die Tracks eine Schleife. Der Code sieht (auszugsweise) also so aus:
Code:
$ergebnis = mysql_query("SELECT * FROM hoerspiele_tracks s LEFT JOIN hoerspiele st USING(CDID) WHERE url ='" . mysql_real_escape_string($_GET['SQL']) . "' "); // verbinde beide Tabellen
($row = mysql_fetch_object($ergebnis)); // lese Daten
Daten aus der Tabelle hoerspiele
Code:
echo' Titel: ', $row->CD_Titel, ' <br />
', $row->Autor, ' <br />
', $row->Verlag, ' <br />
..............................
Code:
while($rowtrack = mysql_fetch_object($ergebnis)); // lese Daten aus Tabelle hoerspiele_tracks
{ echo '[TR]
[TD]t',$rowtrack->Track,'[/TD]
[TD]tt',$rowtrack->Track_Titel,'[/TD]
[TD]l',$rowtrack->Laenge,'[/TD]
[TD]s',$rowtrack->Sprecher,'[/TD]
[TD]';
if ($rowtrack->Track_Sternchen >0 ) // für 0 bild von Daumen runter einfügen / auch bei Büchern
{
echo'
$rowtrack->Track_Sternchen, ' Sterne" />';
}
else
{
echo' ....';
}; // Track_Sternchen Ende
echo'[/TD]
[/TR]
'; };
.....Daten aus Tabelle hoerspiele......
Ich habe keine Fehlermeldung.
Die Daten aus hoerspiel werden richtig ausgegeben. Doch die aus hoerspiel_track fehlen.
Die Strucktur der Abfrage (also das die while-schleife nur für die Tracks da ist) muss doch so OK sein. Oder Täusche ich mich?
Ich hatte es zu erst mit einem Marker probiert. Bis mir einfiel... das ich ja nur die tracks mehrfach abfragen muss.
------------------ UpDate: mit der Strucktur meine ich folgendes: in Zeile
1: $ergebnis = mysql_query("SELECT * FROM hoerspiele_tracks s LEFT JOIN hoerspiele st USING(CDID) WHERE url ='" . mysql_real_escape_string($_GET['SQL']) . "' "); // verbinde beide Tabellen
2: ($row = mysql_fetch_object($ergebnis)); // lese Daten
es folgen Daten aus Tabelle hoerspiel
50: while($rowtrack = mysql_fetch_object($ergebnis));
{
es werden nun die Zeilen 51 bis 70 so lange abgearbeitet bis kein Track mit der gleichen CDID vorhanden ist
70: }
weitere Daten der CD
80: ?>
Zuletzt bearbeitet: