02. marts 2006 - 21:51
Der er
12 kommentarer og 1 løsning
Problem med voting-script
Hej alle... Jeg er ved at lave et "voting-script" til min hjemmeside. Mit problem er, at scriptet intet viser (bare en tom side), og jeg forstår virkelig ikke hvorfor! Her er koden: <?php $db = mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("xxx", $db); $votes_array = array( 'Jeg elsker den!', 'Den er ok...', 'Ved ikke', 'Kan ikke lide den...' ); ?> <table cellspacing="0" cellpadding="0" width="259"> <tr> <td>Hvad syntes du om den nye F599 Fiorano?</td> </tr> </table> <?php $ip = $_SERVER[REMOTE_ADDR]; $count_ip = mysql_query("SELECT * FROM afstem WHERE ip = $_SERVER[REMOTE_ADDR]"); $cip = mysql_num_rows($count_ip); if($cip == 0) { if( $_POST["stem"] ) { mysql_query("INSERT INTO afstem (vote, ip) VALUES ('$_POST[vote]', '$ip')") or die(mysql_error()); } else { $i = 0; ?> <form action="<?php echo $PHP_SELF; ?>" method="POST"> <?php while( $i >= 0 && $i <= 3 ) { echo "<input name=vote type=radio value=".$i."> ".$votes_array[$i]."<br />"; $i++; } echo "<input type=submit value=Stem name=stem>"; ?> </form> <?php unset($i); } } else { echo "Hej"; $antal_stemmer = mysql_query("SELECT * FROM afstem") or die(mysql_error()); $antal_stem = mysql_num_rows($antal_stemmer); $i = 0; while( $i >= 0 && $i <= 3 ) { $antal_$i = mysql_query("SELECT * FROM afstem WHERE vote = '".$i."'") or die(mysql_error()); $ant_$i = mysql_num_rows($antal_$i); $i++; } unset($i); $i = 0; while( $i >= 0 && $i <= 3 ) { $vote_$i = $ant_$i / $antal_stem * 100; $i++; } unset($i); $i = 0; echo $vote_0; } ?> Håber at i kan hjælpe, for jeg er virkelig lost!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
02. marts 2006 - 22:06
#1
Prøv at rette: $count_ip = mysql_query("SELECT * FROM afstem WHERE ip = $_SERVER[REMOTE_ADDR]"); - til: $count_ip = mysql_query("SELECT * FROM afstem WHERE ip = '$ip'"); Dels har du udregnet $ip et par linjer tidliger, og dels så skal der '-tegn rundt om tekst.
02. marts 2006 - 22:10
#2
Sorry... Virkede desværre ikke... (jeg har også prøvet at fjerne select'en helt...) ellers tak for forsøget!
02. marts 2006 - 22:18
#3
Kigger på det.
02. marts 2006 - 22:24
#4
<?php $db = mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("xxx", $db); $votes_array = array( 'Jeg elsker den!', 'Den er ok...', 'Ved ikke', 'Kan ikke lide den...' ); ?> <table cellspacing="0" cellpadding="0" width="259"> <tr> <td>Hvad syntes du om den nye F599 Fiorano?</td> </tr> </table> <?php $ip = $_SERVER[REMOTE_ADDR]; $count_ip = mysql_query("SELECT * FROM afstem WHERE ip = '$ip") or die(mysql_error()); $cip = mysql_num_rows($count_ip); if ($cip == 0) { if ( $_POST["stem"] ) { mysql_query("INSERT INTO afstem (vote, ip) VALUES ('$_POST[vote]', '$ip')") or die(mysql_error()); } else { ?> <form action="<?php echo $PHP_SELF; ?>" method="POST"> <?php for ($i=0; $i<count($votes_array); $i++) { echo "<input name='vote' type='radio' value='" . $i . "'> " . $votes_array[$i] . "<br />"; } echo "<input type='submit' value='Stem' name='stem'>"; ?> </form> <?php } } else { echo "Hej"; $antal_stemmer = mysql_query("SELECT * FROM afstem") or die(mysql_error()); $antal_total = mysql_num_rows($antal_stemmer); for ($i=0; $i<count($votes_array); $i++) { $result = mysql_query("SELECT * FROM afstem WHERE vote = '" . $i . "'") or die(mysql_error()); $antal = mysql_num_rows($result); echo $votes_array[$i] . ": " . (100.0 * $antal / $antal_total); } } ?>
02. marts 2006 - 22:26
#5
<?php $db = mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("xxx", $db); $votes_array = array("Jeg elsker den!", "Den er ok...", "Ved ikke", "Kan ikke lide den..."); ?> Hvad synes du om den nye F599 Fiorano? <?php $ip = $_SERVER['REMOTE_ADDR']; $result = mysql_query("SELECT COUNT(*) FROM `afstem` WHERE ip = '".$ip."'") or die (mysql_error()); ?> <?php if (mysql_result($result, 0) == 0): ?> <?php if ($_POST['is_posted']): mysql_query("INSERT INTO `afstem` (`vote`, `ip`) VALUES ('".$_POST['vote']."', '".$ip."')") or die(mysql_error()); endif; ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="hidden" name="is_posted" value="1"> <?php for ($i=0; $i<count($votes_array); $i++): echo "<input name=vote type=radio value=".$i."> ".$votes_array[$i]."<br />"; endfor; ?> <input type="submit" value="Stem"> </form> <?php else: ?> <?php $result = mysql_query("SELECT COUNT(*) FROM `afstem`") or die(mysql_error()); $total_votes = mysql_result($result, 0); ?> <?php $result = mysql_query("SELECT `vote`, COUNT(*) AS `num_of_votes` FROM `afstem` GROUP BY `vote`") or die(mysql_error()); while ($data = mysql_fetch_array($result, MYSQL_ASSOC)): $vote = $data['vote']; $votes[$vote] = $data['num_of_votes']; endwhile; for ($i=0; $i<count($votes_array); $i++): echo $votes_array[$i].": "; if isset($votes[$i]): echo "(".round($votes[$i] / $total_votes * 100)."%)"; else: echo "(0%)" endif; echo "<br />"; endfor; ?> <?php endif; ?>
02. marts 2006 - 22:27
#6
En lille fejl (måske flere) echo "(0%)"; Utestet.
02. marts 2006 - 22:32
#7
<?php $db = mysql_connect("localhost", "xxx", "xxx"); mysql_select_db("xxx", $db); $votes_array = array("Jeg elsker den!", "Den er ok...", "Ved ikke", "Kan ikke lide den..."); ?> Hvad synes du om den nye F599 Fiorano? <?php $ip = $_SERVER['REMOTE_ADDR']; $result = mysql_query("SELECT COUNT(*) FROM `afstem` WHERE ip = '".$ip."'") or die (mysql_error()); ?> <?php if (mysql_result($result, 0) == 0): ?> <?php if ($_POST['is_posted']): mysql_query("INSERT INTO `afstem` (`vote`, `ip`) VALUES ('".$_POST['vote']."', '".$ip."')") or die(mysql_error()); endif; ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="hidden" name="is_posted" value="1"> <?php for ($i=0; $i<count($votes_array); $i++): echo "<input name=vote type=radio value=".$i."> ".$votes_array[$i]."<br />"; endfor; ?> <input type="submit" value="Stem"> </form> <?php else: ?> <?php $result = mysql_query("SELECT COUNT(*) FROM `afstem`") or die(mysql_error()); $total_votes = mysql_result($result, 0); ?> <?php $result = mysql_query("SELECT `vote`, COUNT(*) AS `num_of_votes` FROM `afstem` GROUP BY `vote`") or die(mysql_error()); while ($data = mysql_fetch_array($result, MYSQL_ASSOC)): $vote = $data['vote']; $votes[$vote] = $data['num_of_votes']; endwhile; for ($i=0; $i<count($votes_array); $i++): echo $votes_array[$i].": "; if (isset($votes[$i])): echo "(".round($votes[$i] / $total_votes * 100)."%)"; else: echo "(0%)"; endif; echo "<br />"; endfor; ?> <?php endif; ?>
02. marts 2006 - 22:37
#8
Hmm... Intet vises - Stadigvæk. Jeg forstår intet...! Men tak for hjælpen i 2, jeg tror jeg bare starter forfra, og ser hvad jeg kan gøre... Så i må gerne smide et svar, og få point for indsatsen!
02. marts 2006 - 22:38
#9
Vent... Den sidste virkede... Kan ikke umidlbart se hvad du har gjort, kan du forklare?
02. marts 2006 - 22:39
#10
Jeg har "bare" skrevet det hele om :)
02. marts 2006 - 22:41
#11
ok... Men hvad gjorde udslaget, så tingene begyndte at vises sig igen? Tusind tak - Smid svar!
02. marts 2006 - 22:52
#12
Umiddelbart har det noget med dine variabel-navne, men jeg opgav ærlig talt at finde fejlen. Så jeg skrev det stort set fra ny. Med venlig hilsen Jesper Sørensen
03. marts 2006 - 15:24
#13
100 fortjænte point til dig!
Vi tilbyder markedets bedste kurser inden for webudvikling