phpbar.de logo

Mailinglisten-Archive

[php] doppelte DB-Abfrage

[php] doppelte DB-Abfrage

maik sturm [at home] php_(at)_phpcenter.de
Sat, 08 Dec 2001 09:19:35 +0100


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($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