mysql_fetch_assoc + mysql_query

THMaster

Grünschnabel
hallo.
ich versuche mir seit einigen tagen, den anfang für ein kleines forum zu machen.
jetz stehe ich aber vor dem problem, bzw. der frage, wieso
mysql_fetch_assoc(mysql_query($select));
nicht funktioniert, allerdings
$query = mysql_query($select);
...
mysql_fetch_assoc($query)
schon.

bei der ersten variante werden mir verdammt viele einträge angezeigt, die eigentlich nur ein eintrag sind, der andauernd wegen der while angezeigt wird.
bei der 2. variante wird alles nur einmal angezeigt, so wie es soll.

ich würde mich freuen, wenn mir jemand verraten könnte, wieso das ist und auch ob das nur ein fehler meinerseits ist, oder ob das immer so ist.

MfG
 
mysql_query() gibt eine ergebnistabelle zurrück, die du erst zwischenspeichern musst!
Du kannst diese Funktion also nicht in einer anderen gepackt verwenden!
 
Hi

ist ganz einfach.
Code:
$query = mysql_query($select);//hier speicherst du das ergebniss ab.(zb. 5 rows)
while ($row = mysql_fetch_assoc($query) )//und hier werden die rows "rausgezogen".
Code:
while ($row = mysql_fetch_assoc(mysql_query($select)));
Bei dem Code wird jedesmal das Query ausgeführt und du bekommst jedesmal ein neues ergebniss zurück. Somit wird es eine endlos-loop.

MArc
 
Zeig mal einen Codeausschnitt. Wenn du nur einen Datensatz (den ersten) brauchst, dann funktioniert die erste Variante auch. Ich kann aber nicht aus dem Bauch sagen was falsch ist. Eben, zeig mal etwas Code. Und vielleicht auch nocht das Query!

;)
 
PHP:
      $select_board = 'SELECT `name` , `description` , `posts`, `threads`, `lastpostname` , `lastposttime` , `lastposterid` , `categoryid` FROM `board`';
      $query_board  = mysql_query('SELECT `id`, `name` , `description` , `posts`, `threads`, `lastpostname` , `lastposttime` , `lastposterid` , `categoryid` FROM `board` WHERE `categoryid` = \''.$while_assoc_category['id'].'\'');
 while ($while_assoc_board = mysql_fetch_assoc($query_board))

ihr habt meine frage ja schon beantwortet ^^ ich wollte ja nur wissen warum das nich geht, jetz weiß ich, das das erst zwischenespeichert werden muss

danke
 
Zurück