Hi(gh)!
Na dann zähl doch einfach mit …?
Funktioniert aus irgendeinem Grund nicht - mysql_data_seek() liefert immer FALSE!
Hier der Code:
$query = "SELECT interpret.Name, sendung.Datum, interview.NachZeile, interview.BisZeile, interview.Teil FROM interpret, sendung, interview, interview_interpret WHERE sendung.Datum = '".mysql_real_escape_string($datum[$i])."' AND interview.Sendung = sendung.ID AND interview_interpret.Interview = interview.ID AND interview_interpret.Interpret = interpret.ID ORDER BY NachZeile";
$result2 = mysql_query($query);
dberror();
$row2 = mysql_fetch_row($result2);
$row2count = 1; // erste Zeile wurde abgefragt, also steht der Zähler jetzt bei 1
[...]
$blocks = false;
$r = 0; // Einzeltitel-Zeile innerhalb einer Sendung
while ($row = mysql_fetch_row($result))
{
$r++;
echo $row2count."<br>";
if ($row2[0] != NULL && $r == $row2[2]+1) // falls Sendung Interview enthält
{
switch ($datum[$i])
{
case "1988-09-08":
$partner = $row2[0]." & Büdi Siebert";
break;
case "1988-09-15":
$partner = $row2[0]." = Hubert Bognermayr, Harald Zuschrader, Josef Resl";
break;
}
if ($r > 1) // Leerzeile vor Interview-Block, falls nicht am Anfang der Sendung
{
echo '<tr><td colspan="3"> </td></tr>';
}
$firstpartnerstart = $row2[2]; // Block-Start für ersten Partner im aktuellen Interview
echo '<tr><td colspan="3">Interview mit ';
do
{
if (stristr($row2[0], ",")) // Umstellung von Familien- und Vorname, falls interviewter Interpret ein einzelner Musiker ist
{
$name = explode(", ", $row2[0]);
$partner = $name[1]." ".$name[0];
}
else
$partner = $row2[0];
echo $partner;
$row2 = mysql_fetch_row($result2); // nächster Eintrag in Interview-Liste pro Sendung
$row2count++;
if ($row2[2] == $firstpartnerstart)
echo ", ";
}
while ($row2[2] == $firstpartnerstart); // solange jeweils nächster Eintrag dieselbe Blockstart-Zeile hat wie der erste Partner im aktuellen Interview (also zusätzlicher Partner im selben Interview ist)
mysql_data_seek($result2, $row2count-1); // Datenbank-Ergebniszeiger wird um eine Zeile zurück gesetzt
// $row2 = mysql_fetch_row($result2);
if ($row2[4] != NULL) // falls Interview mehrteilig (d. h. über mehrere Sendungen verteilt)
echo ", Teil ".$row2[4];
echo "</td></tr>";
}
if (strpos($row3[0], "Auswertung")) // Sonderregelung für Sendungen mit Ergebnissen von Schwingungen-Wahlen
$blocks = true;
if ($blocks)
{
[...]
}
else
echo '<tr><td>'.$row[0].'</td><td>'.$row[1].'</td><td>'.$row[2]; // normale Ausgabe einer Zeile mit Intepret, Tonträger und Titel
[...]
if ($row2[3] < $row5[0] && $r == $row2[3])
// if ($r < $row5[0] && $r == $row2[3])
{
echo '<tr><td colspan="3"> </td></tr>'; // Leerzeile, falls nach einem Interview-Block noch andere Titel folgen
$row2 = mysql_fetch_row($result2); // nächstes Interview in der Sendung, sofern vorhanden
$row2count++;
}
$row3 = mysql_fetch_row($result3); // nächste Sonderzeile, sofern vorhanden
echo "</td></tr>"; // schließende Tags der Tabellenzeile
}