10. maj 2001 - 10:32
Der er
6 kommentarer og 1 løsning
Problem med if
Hvorfor bliver else-delen ikke udført hvis $sql er tom?? <? if($email != \"\") { $select = \"select * from nyhed_abon where abon_email = \'$email\'\"; $sql = mysql_query($select); if($sql) { print \"<form name=afmeld action=afmeld_commit.php method=post>\"; print \"<tr><td>Du er tilmeldt følgende nyhedsbreve:</td></tr>\"; while($rs = mysql_fetch_array($sql)){ $select = \"select * from nyhed_kat where kat_id = $rs[abon_kat_id]\"; $sql2 = mysql_query($select); $rs2 = mysql_fetch_array($sql2); print \"<tr><td><input type=checkbox name=fjern[] value=$rs[abon_kat_id]> $rs2[kat_titel]</td></tr>\"; } print \"<tr><td align=center><input type=submit value=\'Afmeld valgte nyhedsbreve\'></td></tr>\"; print \"</form>\"; } else { print \"<form name=afmeld action=afmeld.php method=post>\"; print \"<tr><td>Der er ikke tilmeldt nogle nyhedsbreve til $email.</td></tr>\"; print \"<tr><td>Dette kan skyldes forkert indtastet emailadresse eller at nyhedsbrevet allerede er afmeldt.</td></tr>\"; print \"<tr><td>Hvis du har skrevet forkert, så prøv igen.</td></tr>\"; print \"<tr><td align=center><input type=text name=email></td></tr>\"; print \"<tr><td align=center><input type=submit value=\'Vis mine abonnementer\'></td></tr>\"; print \"</form>\"; } } else { print \"<form name=afmeld action=afmeld.php method=post>\"; print \"<tr><td>Indtast venligst den emailadresse, du modtager nyhedsbreve på.</td></tr>\"; print \"<tr><td align=center><input type=text name=email></td></tr>\"; print \"<tr><td align=center><input type=submit value=\'Vis mine abonnementer\'></td></tr>\"; print \"</form>\"; } ?>
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
Fordi den er out of scope. <? if($email != \"\") { /// IF #1 $select = \"select * from nyhed_abon where abon_email = \'$email\'\"; $sql = mysql_query($select); if($sql) { /// IF #2 print \"<form name=afmeld action=afmeld_commit.php method=post>\"; print \"<tr><td>Du er tilmeldt følgende nyhedsbreve:</td></tr>\"; while($rs = mysql_fetch_array($sql)){ $select = \"select * from nyhed_kat where kat_id = $rs[abon_kat_id]\"; $sql2 = mysql_query($select); $rs2 = mysql_fetch_array($sql2); print \"<tr><td><input type=checkbox name=fjern[] value=$rs[abon_kat_id]> $rs2[kat_titel]</td></tr>\"; } // END SCOPE #2 print \"<tr><td align=center><input type=submit value=\'Afmeld valgte nyhedsbreve\'></td></tr>\"; print \"</form>\"; } else { /// ELSE FOR IF #1 print \"<form name=afmeld action=afmeld.php method=post>\"; print \"<tr><td>Der er ikke tilmeldt nogle nyhedsbreve til $email.</td></tr>\"; print \"<tr><td>Dette kan skyldes forkert indtastet emailadresse eller at nyhedsbrevet allerede er afmeldt.</td></tr>\"; print \"<tr><td>Hvis du har skrevet forkert, så prøv igen.</td></tr>\"; print \"<tr><td align=center><input type=text name=email></td></tr>\"; print \"<tr><td align=center><input type=submit value=\'Vis mine abonnementer\'></td></tr>\"; print \"</form>\"; } } else { print \"<form name=afmeld action=afmeld.php method=post>\"; print \"<tr><td>Indtast venligst den emailadresse, du modtager nyhedsbreve på.</td></tr>\"; print \"<tr><td align=center><input type=text name=email></td></tr>\"; print \"<tr><td align=center><input type=submit value=\'Vis mine abonnementer\'></td></tr>\"; print \"</form>\"; } ?>
Jeg har ikke ændret i din kode, kun kommenteret dine scopes med ///. Dit problem ligger her: } // END SCOPE #2 print \"<tr><td align=center><input type=submit value=\'Afmeld valgte nyhedsbreve\'></td></tr>\"; print \"</form>\"; } Fjern de to print linjer og dit else vil høre til din IF #2. else { /// ELSE FOR IF #1
Ahh sorry, lidt kodeblindhed her fra morgenstunden... Problemet ligger her: $sql = mysql_query($select); mysql_query returnerer true eller false afhængigt af om din forespørgsel lykkedes. En forespørgsel der returnerer 0 rækker vil returnere true. Så du vil altid få true. Skriv om til noget i stil med: $result = mysql_query($select); $sql= mysql_num_rows($result); if ($sql) ....