phpbar.de logo

Mailinglisten-Archive

[php] doppelte DB-Abfrage an postgresql

[php] doppelte DB-Abfrage an postgresql

Maik Sturm php_(at)_phpcenter.de
Sat, 8 Dec 2001 00:44:33 -0500


Hallo Liste,

folgendes Funktion hängt sich bei mir.
function antworten($antwort) {
  global $a, $PHPSESSID, $sql_user_group, $keyword, $field, $mode;
  $result = db_query("SELECT * FROM forum WHERE antwort = $antwort and 
$sql_user_group") or db_die();;
  echo "$antwort";
  if ($result) {
    ##########while-Schleife hängt sich auf##################
    while($row = db_fetch_row($result)) {
      #$result2 = db_query("SELECT nachname, vorname from users where ID = 
'$row[2]'");# or db_die();
      #$row2 = db_fetch_row($result2);
      $datum = 
substr($row[6],6,2).".".substr($row[6],4,2).".".substr($row[6],0,4)." 
".substr($row[6],8,2).".".substr($row[6],10,2);
      echo "<tr><td>";
      for ($e = 0; $e <= $a; $e++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;\n";  }
      $title = htmlspecialchars($row[3]);
      echo "<a 
href='forum.php?id=$row[0]&action=writetext&PHPSESSID=$PHPSESSID&mode=$mode&page=$page&perpage=$perpage&keyword=$keyword&field=$field'>$title</a></td>";
      echo "<td>$row2[0], $row2[1]</td><td>$datum</td></tr>\n";
      $a++;
      antworten($row[0]);
      $a--;
      }
  }
}
Das ganze ist eine Abfrage aus einer Forums-Tabelle. Das Problem ist wenn ich 
während der 1. Anfrage noch eine weiter Anfrage hinterher schicke, findet die 
while-Schleife kein Ende. Desshalb ist auch die Anfrage aus der Tabelle 
"Users" erstmal auskommentiert. Aber da sich die Funktion selbst nochmal 
aufruft ist eine 2. Anfrag nötig. Lasse ich die den rekursiven Aufruf weg und 
nehme dafür die Abfrage von der Tabelle "user" rein, läuft die while-Schleife 
ebensfalls ins Endlose. Ich habe die postgresql im Hintergrund laufen, falls 
das weiterhilft. Weiß da jemand einen Rat?

Danke Maik


php::bar PHP Wiki   -   Listenarchive