25. februar 2004 - 10:25
Der er
14 kommentarer og 1 løsning
problem i kode
hej eksperten... jeg har følgende kode-stump på min side: if($table == "comments"){ $arr_count = array(); while($counts = mysql_fetch_array($res)){ if(!in_array($counts['postid'], $arr_count)){ $arr_count[] = $counts['postid']; } } $antalres = count($arr_count); if($antalres > "1" OR $antalres == "0"){ $antalres = $antalres." poster"; }else{ $antalres = $antalres." post"; } ?> <table> <tr> <td class='4'><div class='punkt'>der er blevet søgt på:<b><?echo $_REQUEST['sog'];?></b></td><td class='4' colspan='2'><div class='punkt'>der blev fundet <?echo $antalres;?></td> </tr> <? db_tilslut(); $style=1; $arr_postid = array(); while($comm = mysql_fetch_array($res)){ if($style==3){ $style=1; } if(in_array($comm['postid'], $arr_postid)){ }else{ $arr_postid[] = $comm['postid']; $sql2 = "SELECT postid AS id, brugerid, navn, emne, dato FROM posts WHERE postid='$comm[postid]'"; $res2 = mysql_query($sql2) or die(mysql_error); while($search = mysql_fetch_array($res){ ?> <tr><td class='<?echo $style;?>' width='400'><div class='<?echo $style;?>'><?echo $search['emne'];?></td><td class='<?echo $style;?>' width='100'><div class='<?echo $style;?>'><?echo $search['navn'];?></td><td class='<?echo $style;?>' width='100'><div class='<?echo $style;?>'><?echo $search['dato'];?></td></tr> <? } $style++; } } db_afslut(); } den når til hvor den skriver hvad der er blevet søgt på, og så skriver den ikke mere... hvis jeg undlader den første while-lække i denne kodestump, vil den gerne fortsætte og udføre hele kodestumpen... synes det lyder mærkeligt! nogen der har en ide til hvad der er galt? pft
Annonceindlæg fra Computerworld
25. februar 2004 - 10:33
#1
her er hvad jeg tror der sker :) søger $res til enden ... while($counts = mysql_fetch_array($res)){ ... da den allerede er ved enden, løber den ikke igennem while while($comm = mysql_fetch_array($res)){ ...
25. februar 2004 - 10:41
#2
har jeg osse tænkt på... og jeg har derfor prøvet at smide res over i en variabel kaldet "rescomm" og så bruge den i den første while-løkke, og bruger "res" i den sidste... samme resultat! :(
25. februar 2004 - 10:50
#3
Det kan du ikke, da det den returner er en identifier ikke data. Du skal enten læse query'en over i den struktur og behandle den i dine while. Eller lave en mysql_data_seek($res, 0) imellem dine while.
25. februar 2004 - 10:50
#4
..en struktur..
25. februar 2004 - 10:52
#5
hmm... det forstår jeg ikke lige hvad det er du mener der.. gider du prøve at forklare? :)
25. februar 2004 - 11:07
#6
prøv if($table == "comments"){ $arr_count = array(); while($counts = mysql_fetch_array($res)){ if(!in_array($counts['postid'], $arr_count)){ $arr_count[] = $counts['postid']; } } $antalres = count($arr_count); if($antalres > "1" OR $antalres == "0"){ $antalres = $antalres." poster"; }else{ $antalres = $antalres." post"; } ?> <table> <tr> <td class='4'><div class='punkt'>der er blevet søgt på:<b><?echo $_REQUEST['sog'];?></b></td><td class='4' colspan='2'><div class='punkt'>der blev fundet <?echo $antalres;?></td> </tr> <? db_tilslut(); $style=1; $arr_postid = array(); mysql_data_seek($res, 0); while($comm = mysql_fetch_array($res)){ if($style==3){ $style=1; } if(in_array($comm['postid'], $arr_postid)){ }else{ $arr_postid[] = $comm['postid']; $sql2 = "SELECT postid AS id, brugerid, navn, emne, dato FROM posts WHERE postid='$comm[postid]'"; $res2 = mysql_query($sql2) or die(mysql_error); while($search = mysql_fetch_array($res){ ?> <tr><td class='<?echo $style;?>' width='400'><div class='<?echo $style;?>'><?echo $search['emne'];?></td><td class='<?echo $style;?>' width='100'><div class='<?echo $style;?>'><?echo $search['navn'];?></td><td class='<?echo $style;?>' width='100'><div class='<?echo $style;?>'><?echo $search['dato'];?></td></tr> <? } $style++; } } db_afslut(); }
25. februar 2004 - 11:08
#7
while($search = mysql_fetch_array($res){ -> while($search = mysql_fetch_array($res2){
25. februar 2004 - 11:11
#8
og det eneste der skal tilføjes er den linje hvor der står: "mysql_data_seek($res, 0);"?
25. februar 2004 - 11:12
#9
og ja.. der står osse res2, der hvor du mener... det var bare en fejl da jeg pastede det over..
25. februar 2004 - 11:17
#10
25. februar 2004 - 11:26
#11
det virker... hvad gør den? men du må heller lige komme med et svar, så du kan få point! tak for hjælpen!
25. februar 2004 - 11:28
#12
den resetter den interne søge pointer. while før #1 data, data, data, data ^- intern pointer while efter #1 data, data, data, data ^- intern pointer while efter seek data, data, data, data ^- intern pointer
25. februar 2004 - 11:29
#13
ved while efter #1, peger den på det sidste element... :)
25. februar 2004 - 11:30
#14
ascii grafik er ikke så nemt når det ikke er monospace =)
25. februar 2004 - 11:34
#15
nej... men jeg forstår pointen.. dvs at den resetter pointeren (eller hvad man skal sige)..
Vi tilbyder markedets bedste kurser inden for webudvikling