Avatar billede challenge Praktikant
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!
Avatar billede nielle Nybegynder
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.
Avatar billede challenge Praktikant
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!
Avatar billede schaefner Juniormester
02. marts 2006 - 22:18 #3
Kigger på det.
Avatar billede nielle Nybegynder
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);
    }
}
?>
Avatar billede schaefner Juniormester
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;
?>
Avatar billede schaefner Juniormester
02. marts 2006 - 22:27 #6
En lille fejl (måske flere)

echo "(0%)";

Utestet.
Avatar billede schaefner Juniormester
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;
?>
Avatar billede challenge Praktikant
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!
Avatar billede challenge Praktikant
02. marts 2006 - 22:38 #9
Vent... Den sidste virkede...

Kan ikke umidlbart se hvad du har gjort, kan du forklare?
Avatar billede schaefner Juniormester
02. marts 2006 - 22:39 #10
Jeg har "bare" skrevet det hele om :)
Avatar billede challenge Praktikant
02. marts 2006 - 22:41 #11
ok... Men hvad gjorde udslaget, så tingene begyndte at vises sig igen?

Tusind tak - Smid svar!
Avatar billede schaefner Juniormester
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
Avatar billede challenge Praktikant
03. marts 2006 - 15:24 #13
100 fortjænte point til dig!
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

IT-JOB

Kræftens Bekæmpelse

IT-driftsleder

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kryptokustode til opbygning af Forsvarets nye IT-platform

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer