Avatar billede zacho112 Nybegynder
05. februar 2006 - 19:35 Der 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."";
}
?>

håber i kan hjælpe!
Avatar billede TRoXa Novice
05. februar 2006 - 19:43 #1
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."";
}
?>
Avatar billede TRoXa Novice
05. februar 2006 - 19:44 #2
prøv den (lægger den her som et svar hvis det skulle virke, da jeg egentlig kun lige kom hurtigt forbi siden for at se noget) :)
Avatar billede zacho112 Nybegynder
05. februar 2006 - 19:47 #3
prøver det lige, men hvad er det lige at if (mysql_num_rows($results) <> 1) gør?
Avatar billede zacho112 Nybegynder
05. februar 2006 - 20:00 #4
Fik rettet mit eget script så det virkede... men du skal have tak alligevel, og fordi du var så hurtigt, så få du alligevel dine point... :D
Avatar billede TRoXa Novice
05. februar 2006 - 20:15 #5
Jeg takker da mange gange :D Godt at du fik det til at virke :)
Avatar billede TRoXa Novice
05. februar 2006 - 20:18 #6
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 :)
Avatar billede zacho112 Nybegynder
05. februar 2006 - 20:20 #7
Okay, men det virker :D og du skal have tak :D
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester