12. september 2004 - 15:42
Der er
20 kommentarer og 1 løsning
Hvorfor skriver den det samme så mange gange
Hej Jeg har lavet en indkøbskurv og det virker da også nogenlunde, men når brugeren trykker på Tøm Kurv, så tømmer den variablen og skal så skrive "Kurven er tom", men istedet så skriver "Kurven er TomKurven erTomKurven er TomKurven er Tom" etc. det skriver den RET mange gange. Hvad er der galt? --------------- vis_kurv.php -------------- <html> <head> <title>Vis Kurv</title> <? session_start(); $con = mysql_connect( "localhost", "BRUGERNAVN", "KODEORD" ); mysql_select_db( "DATABASENAVN" ); $sql = "SELECT FILMID,FILMNAVN,GENRE,DVDER,LINK,PRODUKTION,PRIS FROM FILMTABEL"; $qh = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $qh ) ) if(!isset($_SESSION['kurv1'])) { echo 'Kurven er tom'; } else { echo '<p><a href="toem_kurv.php">Tøm Kurv</a></p>'; echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%" align="center"><font color="#0033CC"><b>FilmID</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Film</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Pris</b></font></td> </tr> </tabel>'; foreach ($_SESSION['kurv1'] as $item) { $sql = "SELECT FILMNAVN, PRIS FROM FILMTABEL WHERE FILMID = $item"; $qh = mysql_query( $sql ); while ( $film = mysql_fetch_assoc( $qh ) ) echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%"><font color="black" size="2"> '.$item.'</font></td> <td width="33%"><font color="black" size="2"> '.$film[FILMNAVN].'</font></td> <td width="33%"><font color="black" size="2"> '.$film[PRIS].'</font></td> </tr> </tabel>'; } } ?> ------------- slut ---------------------- Den gør det også selvom jeg bytter rundt så if(isset(bla bla)) er omvendt.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
12. september 2004 - 15:45
#1
sæt din if(isset(.. ) før while() .. og put whilen ind i din else
exp
Juniormester
12. september 2004 - 15:45
#2
$sql = "SELECT FILMID,FILMNAVN,GENRE,DVDER,LINK,PRODUKTION,PRIS FROM FILMTABEL"; $qh = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $qh ) ) if(!isset($_SESSION['kurv1'])) { echo 'Kurven er tom'; } else { Den skriver det så længe der er indhold i databasen :-) Du skal finde en måde at afgrænse SQL-queryen...
12. september 2004 - 15:46
#3
Sådan her: <html> <head> <title>Vis Kurv</title> <? session_start(); $con = mysql_connect( "localhost", "BRUGERNAVN", "KODEORD" ); mysql_select_db( "DATABASENAVN" ); $sql = "SELECT FILMID,FILMNAVN,GENRE,DVDER,LINK,PRODUKTION,PRIS FROM FILMTABEL"; $qh = mysql_query( $sql ); if(!isset($_SESSION['kurv1'])) { echo 'Kurven er tom'; } else { while ( $row = mysql_fetch_assoc( $qh ) ) echo '<p><a href="toem_kurv.php">Tøm Kurv</a></p>'; echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%" align="center"><font color="#0033CC"><b>FilmID</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Film</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Pris</b></font></td> </tr> </tabel>'; foreach ($_SESSION['kurv1'] as $item) { $sql = "SELECT FILMNAVN, PRIS FROM FILMTABEL WHERE FILMID = $item"; $qh = mysql_query( $sql ); while ( $film = mysql_fetch_assoc( $qh ) ) echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%"><font color="black" size="2"> '.$item.'</font></td> <td width="33%"><font color="black" size="2"> '.$film[FILMNAVN].'</font></td> <td width="33%"><font color="black" size="2"> '.$film[PRIS].'</font></td> </tr> </tabel>'; } } ?>
12. september 2004 - 15:53
#4
dennismp -> det virker fint så længe kurven er tom, men når den så ikke er tom, så skriver den Tøm Kurv omrking 70 gange.
12. september 2004 - 15:54
#5
eller: if(!isset($_SESSION['kurv1']) && !isset($printempty) ) { echo 'Kurven er tom'; $printempty = 1; } Den anden måde med at teste for session først, er dog mere korrekt, da det kræver mindre maskinkraft(dog en forsvindende og ubetydelig lille forskel).
12. september 2004 - 15:57
#6
stefmeister; også selvom du flytter din if ud af while-løkken?
12. september 2004 - 16:42
#7
hmmm den gør det stadig... og nu har jeg endda rykket den HELT op, før end den overhoved connecter til databasen.
12. september 2004 - 16:44
#8
kalder du filen direkte i browseren? eller er det via include()'s eller require()'s ?
12. september 2004 - 16:47
#9
filen?
12. september 2004 - 16:48
#10
jeg skriver til variablen sådan her: if(!isset($_SESSION['kurv1'])) { $_SESSION['kurv1'] = array(); $_SESSION['kurv1'][] = $new; } else { $_SESSION['kurv1'][] = $new; }
12. september 2004 - 16:49
#11
filen=vis_kurv.php
12. september 2004 - 16:55
#13
aaaah... jeg skriver den direkte i browseren.
12. september 2004 - 16:56
#14
jeg er ikke så syg til php så det andet der kan jeg ikke finde ud af.
12. september 2004 - 17:01
#15
Prøv at paste det kode du har ligenu. Fatter ikke helt hvorfor den skriver det mere end een gang..
12. september 2004 - 17:04
#16
<html> <head> <title>Vis Kurv</title> <? session_start(); if(!isset($_SESSION['kurv1'])) { echo 'Kurven er tom'; } else { $con = mysql_connect( "localhost", "BRUGERNAVN", "KODEORD" ); mysql_select_db( "DATABASE" ); $sql = "SELECT FILMID,FILMNAVN,GENRE,DVDER,LINK,PRODUKTION,PRIS FROM FILMTABEL"; $qh = mysql_query( $sql ); while ( $row = mysql_fetch_assoc( $qh ) ) echo '<p><a href="toem_kurv.php">Tøm Kurv</a></p>'; echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%" align="center"><font color="#0033CC"><b>FilmID</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Film</b></font></td> <td width="33%" align="center"><font color="#0033CC"><b>Pris</b></font></td> </tr> </tabel>'; foreach ($_SESSION['kurv1'] as $item) { $sql = "SELECT FILMNAVN, PRIS FROM FILMTABEL WHERE FILMID = $item"; $qh = mysql_query( $sql ); while ( $film = mysql_fetch_assoc( $qh ) ) echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="33%"><font color="black" size="2"> '.$item.'</font></td> <td width="33%"><font color="black" size="2"> '.$film[FILMNAVN].'</font></td> <td width="33%"><font color="black" size="2"> '.$film[PRIS].'</font></td> </tr> </tabel>'; } } ?>
12. september 2004 - 17:08
#17
Ret: while ( $row = mysql_fetch_assoc( $qh ) ) til: while ( $row = mysql_fetch_assoc( $qh ) ) { og tilføj en } i slutningen af filen.
12. september 2004 - 17:10
#18
NICE nu virker det. drop et svar.
12. september 2004 - 17:13
#19
Yay! :)
Slettet bruger
12. september 2004 - 22:08
#20
Ret også lige </tabel> til </table>. HTML forstår ikke dansk ;-)
12. september 2004 - 23:13
#21
ok
Vi tilbyder markedets bedste kurser inden for webudvikling