Mailinglisten-Archive |
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 " \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