Hilfe! Möchte Mehrere Datensätze Aus Einer Abfrage in ein PHP Tabellenfeld einfügen

Nightcrawler

Erfahrenes Mitglied
Hallo,

ich bin gerade dabei eine Film DB zu erstellen.
Abfragen klappen wunderbar.
Nur die Ausgabe in meiner PHP Tabelle macht Probleme.

Also ich habe diese Abfrage erstellt.


Jeder Film hat mehrere Inhalte bei (Schauspieler, Ton und Sonstiges); die ich über zwischen tabellen verbunden habe.

Jetzt wird bei der Ausgabe in meiner PHP Tabelle für jeden Schauspieler oder Tonspur eine ganze Wertausgabe erstellt, obwohl diese nur in der vorhandenen Datenausgabe eingefügt werden soll .



Code:
$query = "SELECT f.titel, f.spielzeit, f.studio, f.release, f.fsk, g.genre, r.reg, fi.inhalt, s.name, t.ton, so.sonstiges, mm.cover, mm.trailer
            FROM film f INNER JOIN filminfo fi ON f.kb_id = fi.kb_id
            INNER JOIN genre g ON f.genre_id = g.genre_id
            INNER JOIN regisseure r ON f.reg_id = r.reg_id
            INNER JOIN darsteller d ON f.film_id = d.film_id
            INNER JOIN schauspieler s ON d.darsteller_id = s.darsteller_id
            INNER JOIN audio a ON f.film_id = a.film_id
            INNER JOIN tonspuren t ON a.ts_id = t.ts_id
            INNER JOIN extra e ON f.film_id = e.film_id
            INNER JOIN sonstige so ON e.sons_id = so.sons_id
            INNER JOIN multimedia mm ON f.mm_id = mm.mm_id";

                                     if ($t!="")
            {$bed_t="(f.titel like \"%$t%\")"; $query .= " where $bed_t"; $bed++;}
            else {$bed_t="";}

            if ($s!="")
            {$bed_s="(s.name like \"%$s%\")"; $query .= " where $bed_s"; $bed++;}
            else {$bed_s="";}
            
            if ($st!="-ALLE-")
            {$bed_st="(f.studio = \"$st\")";
            if ($bed>0) {$query .= " AND $bed_st";}
            else {$query .= " where $bed_st"; $bed++;}
            }
            else {$bed_st="";}

            if ($g!="-ALLE-")
            {$bed_g="(g.genre = \"$g\")";
            if ($bed>0) {$query .= " AND $bed_g";}
            else {$query .= " where $bed_g"; $bed++;}
            }
            else {$bed_g="";}

            if ($f!="-ALLE-")
            {$bed_f="(f.fsk = \"$f\")";
            if ($bed>0) {$query .= " AND $bed_f";}
            else {$query .= " where $bed_f"; $bed++;}
            }
            else {$bed_f="";}
            
            
            $result = mysql_query($query);

            while($row = mysql_fetch_row($result))
            {
        
            echo '<table width=\"621\" border=\"1\" cellspacing=\"2\" cellpadding=\"0\">
        <tr><td rowspan=\"5\" width=\"100\">'.$row[11].'<br><br>'.$row[12].'</td>
        <td>'.$row[0].'</td>
        <td>'.$row[1].' min</td>
        <td>'.$row[2].'</td>
        <td>'.$row[3].'</td>
        <td>FSK '.$row[4].'</td>
        <td>'.$row[5].'</td>
        </tr>
        <tr>
        <td>'.$row[8].'      <- Schleife für Schauspieler
        </td>
        <td rowspan=\"4\" colspan=\"5\">'.$row[7].'</td>
        </tr>
        <tr>
        <td>'.$row[6].'</td>
        </tr>
        <tr>
        <td>'.$row[9].'</td>  <- Schleife für Ton
        </tr>
        <tr>
        <td>'.$row[10].'</td>     <-Schleife für Sonstiges
        </tr>';
        }
        echo '</table>';

Nun die Frage,
1. wie kann ich eine Schleife z.Bsp in das Tabellenfeld Ton einbauen, das alle Tonspuren in das selbe Tabellenfeld ausgegeben wird.
Ich bin langsam am verzweifeln weil diese Schleifen nicht gehen.

2. wie kann ich ein binary eingebundenen Link für eine Bilddatei ausgeben lassen.

Welche Lösungen könnt Ihr mir geben?

Dank im Voraus

Nightcrawler
 
Hi,

1. wie kann ich eine Schleife z.Bsp in das Tabellenfeld Ton einbauen, das alle Tonspuren in das selbe Tabellenfeld ausgegeben wird.
Ich bin langsam am verzweifeln weil diese Schleifen nicht gehen.

Du hast also für einen Film mehrere Datensätze in den Tabellen schauspieler, tonspuren, sonstige und bekommst mit Deiner Abfrage jeden Film mehrmals, halt mit den unterschiedlichen Inhalten aus den 3 Tabellen?
Dann könntest Du die Abfrage nach Filmen gruppieren und mit GROUP_CONCAT() die Werte der 3 Spalten sammeln.

Ganz einfaches Beispiel:

Code:
SELECT f.name, 
   GROUP_CONCAT(s.name SEPARATOR '|') as actors
   FROM filme as f
   INNER JOIN schauspieler as s
      ON (f.id = s.film_id)
   GROUP BY f.id

2. wie kann ich ein binary eingebundenen Link für eine Bilddatei ausgeben lassen.

Was ist "ein binary eingebundener Link"?

LG
 
ok das mit der gruppierung werd ich testen

hoffe ich krieg das gebacken.

wegen dem Link

ich habe in der Datenbank eintragen
Spalte -> Cover
Inhalt -> ../bild.jpg

jetzt soll der Link wieder als Bild ausgegeben werden.

Dank im Voraus.

Nightcrawler
 
Zurück