Yadgar: Datenbank-Ergebniszeiger zurücksetzen?

Beitrag lesen

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">&nbsp;</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">&nbsp;</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  
 }