05. februar 2006 - 19:35Der er
6 kommentarer og 1 løsning
Fejl i afstemnings script..
Hej, jeg får en fejl når jeg vil se om min bruger hat stemt. Jeg kan ikke finde fejlen, hvis der er oprettet noget i databasen viser den det lige omvendt end hvis der er ikke er... Altså hvis der ikke er nogle stemmer, så viser den resultat ligemeget hvad, og hvis der er stemmer så viser den forskelligt alt efter om man er logget ind eller ikke, ikke efter om ens brugernavn er i db? her er koden:
<?php include("conn.php"); session_start(); $bruger = $_SESSION["brugernavn"]; $query = "SELECT * FROM admin WHERE brugernavn = '$bruger'"; $results = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($results); $brugernavn = $_SESSION["brugernavn"]; $brugernavn2 = $row['brugernavn']; if ($brugernavn !== $brugernavn2) { $result = mysql_query("select * from poll where id = 1"); $row = mysql_fetch_array($result); echo $row['spg']; ?> <br> <form action="_poll/stem.php" method="post"> <input name="poll" value="1" checked type="radio"><?php echo $row['svar1']; ?><br> <input name="poll" value="2" type="radio"><?php echo $row['svar2']; ?><br> <input name="poll" value="3" type="radio"><?php echo $row['svar3']; ?><br> <input name="poll" value="4" type="radio"><?php echo $row['svar4']; ?><br> <input type="submit" value="Stem"></form> </span> <?php } elseif ($brugernavn == $brugernavn2) { $total = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte")); $svar1 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 1")) / $total * 100; $svar2 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 2")) / $total * 100; $svar3 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 3")) / $total * 100; $svar4 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 4")) / $total * 100; $result = mysql_query("select * from poll where id = 1"); $row = mysql_fetch_array($result); echo "".$row["spg"]."<br><br>"; echo "".$row['svar1']." ".$svar1."%<br>"; echo "".$row['svar2']." ".$svar2."%<br>"; echo "".$row['svar3']." ".$svar3."%<br>"; echo "".$row['svar4']." ".$svar4."%<br>"; echo "Stemmer i alt: ".$total.""; } ?>
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
først og fremmest skal session_start(); altid være den allerførste linie i dit dokument (efter <?php) Ellers kan du få header fejl, men tror nu ikke det er problemet her.
<?php session_start(); include("conn.php"); $brugernavn = $_SESSION["brugernavn"]; $results = mysql_query("SELECT * FROM admin WHERE brugernavn = '$brugernavn'"); if (mysql_num_rows($results) <> 1) { $row = mysql_fetch_array($results); $brugernavn2 = $row['brugernavn']; $result = mysql_query("select * from poll where id = 1"); $row = mysql_fetch_array($result); echo $row['spg']; ?> <br> <form action="_poll/stem.php" method="post"> <input name="poll" value="1" checked type="radio"><?php echo $row['svar1']; ?><br> <input name="poll" value="2" type="radio"><?php echo $row['svar2']; ?><br> <input name="poll" value="3" type="radio"><?php echo $row['svar3']; ?><br> <input name="poll" value="4" type="radio"><?php echo $row['svar4']; ?><br> <input type="submit" value="Stem"></form> </span> <?php } else { $total = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte")); $svar1 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 1")) / $total * 100; $svar2 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 2")) / $total * 100; $svar3 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 3")) / $total * 100; $svar4 = mysql_num_rows(mysql_query("SELECT * FROM poll_stemte where vote = 4")) / $total * 100; $result = mysql_query("select * from poll where id = 1"); $row = mysql_fetch_array($result); echo "".$row["spg"]."<br><br>"; echo "".$row['svar1']." ".$svar1."%<br>"; echo "".$row['svar2']." ".$svar2."%<br>"; echo "".$row['svar3']." ".$svar3."%<br>"; echo "".$row['svar4']." ".$svar4."%<br>"; echo "Stemmer i alt: ".$total.""; } ?>
if (mysql_num_rows($results) <> 1) betyder Hvis der IKKE er en bruger der hedder $bruger, så skal den vise afstemningen så man kan stemme, ellers (hvis der er en bruger der hedder det), så skal den vise resultatet :) men du har 2 sql forespørgsler i den, så tror jeg fik mixet lidt rundt i det, da jeg ikke helt ved hvordan dine tabeller er sat op :)
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.