Jeg har problemer med at få gennemløbet følgende kode mere en 1 gang. Der sker det at while løkken gennemløbes, hvorefter det ser ud som om rutinen dør før jeg når at kalde
$res=mysql_fetch_array($res_query) or Die(mysql_error());
nogle forslag til løsninger ?
nedenfor er vist min kode......
//***************** der gennemløbes for 4 måneder ******************* for ($i=0;$i<4;$i++) {
//******************************************************************** // Her hentes aktiviteter for den pågældende måned //********************************************************************
$strSql="Select AktivitetId, Type, Kommentar, DATE_FORMAT(Dato,'%d.') AS ny_dato,TIME_FORMAT(Tid,'%k:%i') AS ny_tid from tb_aktivitet where DATE_FORMAT(Dato,'%m') = ".($mnd_nr+$i); $res_query=mysql_query($strSql); $res=mysql_fetch_array($res_query) or Die(mysql_error()); ?> <td><hr><table> <? while(!($res==0)) { //******************************************************************** // Her hentes den post som svarer til brugerens id og // den aktuelle aktivitet //******************************************************************** $strSql="Select * from tb_aktspiller where SpillerId =".$userId_session." And AktivitetId=".$res["AktivitetId"]; $rs_query=mysql_query($strSql); $rs=mysql_fetch_array($rs_query) or Die(mysql_error());
//******************************************************************** // Her skrives data til siden for den aktuelle post //******************************************************************** ?> <form method="post" target="opd_tilmelding.php"><tr> <? if ($rs["Tilbudt"]=="1") { ?> <td><input type="checkbox" name="<? echo $rs["id"]; ?>" value="<? echo $rs["Accepteret"]; ?>" onclick="submit()"></td> <? } else { ?> <td> </td> <? } ?> <td><? echo $res["ny_dato"]; ?></td> <td><? echo type_tr($res["Type"]); ?><br><? echo $res["Kommentar"]; ?></td> <td><? echo $res["ny_tid"]; ?></td></tr></form>
<? //******************************************************************** // Her skulle næste aktivitet gerne vælges og while gennemløbes igen //********************************************************************
$res=mysql_fetch_array($res_query) or Die(mysql_error()); } ?> </table></td> <? } ?>
Nu er det sjældent særligt optimalt at lave sååå maaange sql kald som du laver i dit script... Måske skulle du optimere det lidt... Anyways... det er faktisk mere eller mindre umugligt at sige hvor din fejl opstår henne... Hvad med en lille smule fejl søgning?
f.eks. $res=mysql_fetch_array($res_query) or Die(mysql_error()); echo $res; eller køre dit query i phpmyadmin og se hvad du får ud af det der?
du laver 2 mysql queries efter hinanden. de skal have hver deres while løkke.
//******************************************************************** // Her hentes aktiviteter for den pågældende måned //********************************************************************
$strSql="Select AktivitetId, Type, Kommentar, DATE_FORMAT(Dato,'%d.') AS ny_dato,TIME_FORMAT(Tid,'%k:%i') AS ny_tid from tb_aktivitet where DATE_FORMAT(Dato,'%m') = ".($mnd_nr+$i); $res_query=mysql_query($strSql); $res=mysql_fetch_array($res_query); // aldig 'or die' på mysql_fetch_array ?> <td><hr><table> <? while(!($res==0)) { // ydre WHILE løkke //******************************************************************** // Her hentes den post som svarer til brugerens id og // den aktuelle aktivitet //******************************************************************** $strSql="Select * from tb_aktspiller where SpillerId =".$userId_session." And AktivitetId=".$res["AktivitetId"]; $rs_query=mysql_query($strSql); $rs=mysql_fetch_array($rs_query); // aldig 'or die' på mysql_fetch_array
//******************************************************************** // Her skrives data til siden for den aktuelle post //******************************************************************** while (!$rs==0) { // indre WHILE løkke ?> <form method="post" target="opd_tilmelding.php"><tr> <? if ($rs["Tilbudt"]=="1") { ?> <td><input type="checkbox" name="<? echo $rs["id"]; ?>" value="<? echo $rs["Accepteret"]; ?>" onclick="submit()"></td> <? } else { ?> <td> </td> <? } ?> <td><? echo $res["ny_dato"]; ?></td> <td><? echo type_tr($res["Type"]); ?><br><? echo $res["Kommentar"]; ?></td> <td><? echo $res["ny_tid"]; ?></td></tr></form>
<? //******************************************************************** // Her skulle næste aktivitet gerne vælges og while gennemløbes igen //******************************************************************** // find evt næste i indre WHILE $rs=mysql_fetch_array($rs_query); // aldig 'or die' på mysql_fetch_array }
// find evt næte i ydre WHILE $res=mysql_fetch_array($res_query); // aldig 'or die' på mysql_fetch_array } ?> </table></td> <? } ?>
$conn = mysql_connect("mysql.xyz.dk","user","pass"); mysql_select_db("DinDB"); $query="SELECT <<et eller andet smart>> FROM <<Hvor det nu ligger>>"; //Eller hvad du nu har som query $data = mysql_query($query) or die("Error"); while($rs = mysql_fetch_object($data)) { printf($rs->DBfelt); } mysql_close($conn); Det skulle virke //Atomizer
$strSql = " SELECT tai.AktivitetId, tai.Type, tai.Kommentar, DATE_FORMAT(tai.Dato,'%d.') AS ny_dato, TIME_FORMAT(Tid,'%k:%i') AS ny_tid, tas.* FROM tb_aktivitet AS tai JOIN tb_aktspiller AS tas ON tai.AktivitetId = tas.AktivitetId WHERE DATE_FORMAT(tai.Dato,'%m') = " .($mnd_nr+$i) ." AND tas.SpillerId =" .$userId_session ." AND tas.AktivitetId =" .$res["AktivitetId"] ." ";
henter vist alle de data du skal bruge med een kommando.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.