Avatar billede dizzim Nybegynder
22. juli 2004 - 13:40 Der er 9 kommentarer og
1 løsning

Problem med poll, opdatering af MySQL datbase

I'm back!

Jeg har gennem tiden prøvet diverse tutorials men synes nu man lære mere af at lave det selv. Derfor er den her poll jeg er igang med at lave nok ikk lige som så mange andre.

poll'en består af to dele.
1. den første del er en grafisk fremstilling af poll'en. Og en lille form hvor brugeren kan vælge hvad han/hun vil stemme på.

2. Den anden del er den som formen skal aktivere, ved action. Altså den der skal tjekke hvad brugeren har stemt på og indsætte det i en tabel i en MySQL database.

tabllen har desside felter:
allvotes  option1  option2  option3  option4

NB: + et enkelt felt med plads til at gemme ip'er så folk kun kan stemme en gang. Dog gemmer jeg det til senere da jeg først lige vil have poll'en til at virke...


1.
NB!!!: med mindre du har stor løst til at prøve at regne hvad præcist echo spytter ud er så kan du kigge på www.blivion.1go.dk i miscelleaneous sektionen.


<p><font face=Tahoma size=-2>:: </font><font face=Tahoma size=-1> <b> Poll</b>
        </font> <br>
        <br>
        <?php
$connection = mysql_connect("chopin.1go.dk", "free41642", "kodeord");
mysql_select_db("free41642");
$result = mysql_query("SELECT * FROM poll");
while ($row = mysql_fetch_array($result)) {
 
  extract($row);

  $votepercent1 = $option1 / $allvotes * 100;
  $votepercent2 = $option2 / $allvotes * 100;
  $votepercent3 = $option3 / $allvotes * 100;
  $votepercent4 = $option4 / $allvotes * 100;
     
  echo "<font face=Tahoma size=-2> votes: $option1 | Freakin' great: <br><img src=images/poll.gif height=10 width=$votepercent1></font><br><font face=Tahoma size=-2> votes: $option2 | Looks pretty good: <br><img src=images/poll.gif height=10 width=$votepercent2></font><br><font face=Tahoma size=-2> votes: $option3 | It's ugly: <br><img src=images/poll.gif height=10 width=$votepercent3></font><br><font face=Tahoma size=-2> votes: $option4 | Awesome, for a blind dude: <br><img src=images/poll.gif height=10 width=$votepercent4><br><br> <div align=center> total votes: $allvotes</div> </font><br>";
}

mysql_close($connection);
?>

        <br>
        <div align="center"> <font face=Tahoma size=-2><b> How would you rate <br>the design of this site?</b></font></div>
      <form action="misc_poll_vote.php" method="post">
  <input type="radio" name="option" value="vote1">
  <font face=Tahoma size=-2>  Freakin' great!</font>
<br>
  <input type="radio" name="option" value="vote2">
  <font face=Tahoma size=-2>  Looks pretty good</font>
<br>
  <input type="radio" name="option" value="vote3">
  <font face=Tahoma size=-2>  It's ugly</font>
<br>
  <input type="radio" name="option" value="vote4">
        <font face=Tahoma size=-2> Awesome, for a blind dude!</font> <br>
<div align="center"> <input type="submit" value="submit" name="submit"></div>
 
</form>


2.
Det her er så php'en på den side der hedder "misc_poll_vote.php":

<?php

if($_POST['submit']) //If submit is hit
{

  $vote = $_REQUEST['option'];

if ($vote == vote1) {
 

$connection = mysql_connect("chopin.1go.dk", "free41642", "kodeord");
mysql_select_db("free41642"); 
  $result = mysql_query("SELECT * FROM poll");
while ($row = mysql_fetch_array($result)) {
 
  extract($row);
 
    $votecount = $option1 + 1
        $allvotecount = $allvotes + 1

  mysql_query("UPDATE `poll` SET `allvotes` AND `option1` = 'allvotecount' AND `votecount`") or die(mysql_error());

  echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You have just voted! </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> View current result of the poll </a> </font>";

mysql_close($connection);

) elseif ($vote == vote2) {

!!!! GENTAGELSE AF KODEN FØR BARE MED option2 ISTEDET FOR option1. !!!!

) elseif ($vote == vote 3) {

!!!! osv osv osv. bare gentagelse med de 4 options

) else (
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You didn't choose what you wanted to vote for. </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> Go back </a> </font>";

?>
Avatar billede dizzim Nybegynder
22. juli 2004 - 13:45 #1
(hvis i undre jeg over hvordan der allerede er nogle der har stemt er det fordi jeg selv har sat tallene ind i tabellen for at teste hvordan det så ud... Og om de grafiske bare virkede...)
Avatar billede sostack Nybegynder
22. juli 2004 - 14:12 #2
mysql_query("UPDATE `poll` SET `allvotes` AND `option1` = 'allvotecount' AND `votecount`") or die(mysql_error());
skal, i alle 4 if-områder rettes til:
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `option1`='" . $votecount . "'") or die(mysql_error());

Så skulle det kunne virke.
Jeg prøver lige at optimere det lidt.

//sostack
Avatar billede dizzim Nybegynder
22. juli 2004 - 14:21 #3
Det virker desværre ikk...
Avatar billede sostack Nybegynder
22. juli 2004 - 14:24 #4
Prøv med:
<?php
if($_POST['submit'] && $_REQUEST['option'] != "") //If submit is hit
{
$connection = mysql_connect("chopin.1go.dk", "free41642", "kodeord");
mysql_select_db("free41642"); 
$result = mysql_query("SELECT * FROM poll");
$row = mysql_fetch_array($result))
extract($row);
$allvotecount = $allvotes + 1;

SWITCH($_REQUEST['option'])
{
CASE "vote1":
  $feltnavn = "option1";
  $votecount = $option1 + 1;
BREAK;
CASE "vote2":
  $feltnavn = "option2";
  $votecount = $option2 + 1;
BREAK;
CASE "vote3":
  $feltnavn = "option3";
  $votecount = $option3 + 1;
BREAK;
CASE "vote4":
  $feltnavn = "option4";
  $votecount = $option4 + 1;
BREAK;
DEFAULT:

BREAK;
}
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "'") or die(mysql_error());
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You have just voted! </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> View current result of the poll </a> </font>";
mysql_close($connection);
} else {
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You didn't choose what you wanted to vote for. </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> Go back </a> </font>";
}
?>

//sostack
Avatar billede sostack Nybegynder
22. juli 2004 - 14:38 #5
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "'") or die(mysql_error());
skal lige rettes til:
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "' WHERE `allvotes`='. $allvotes . "'") or die(mysql_error());

//sostack
Avatar billede sostack Nybegynder
22. juli 2004 - 14:40 #6
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "' WHERE `allvotes`='. $allvotes . "'") or die(mysql_error());
skal lige rettes til:
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "' WHERE `allvotes`='" . $allvotes . "'") or die(mysql_error());
Avatar billede dizzim Nybegynder
22. juli 2004 - 15:06 #7
Der må være en fejl i koden.. for der kommer bare en blank side frem...
Avatar billede sostack Nybegynder
23. juli 2004 - 06:47 #8
Sæt dette ind lige efter den sidste } :
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You have just voted! </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> View current result of the poll </a> </font>";

//sostack
Avatar billede dizzim Nybegynder
23. juli 2004 - 14:04 #9
<html>
<head>
<title>Blivion.miscelleaneous.poll.vote</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#62717C" leftmargin="10" topmargin="10" marginwidth="10" marginheight="10" bottommargin="0" link="#62717C" vlink="#62717C" alink="#62717C">
<?php
if($_POST['submit'] && $_REQUEST['option'] != "") //If submit is hit
{
$connection = mysql_connect("chopin.1go.dk", "free41642", "kodeord");
mysql_select_db("free41642"); 
$result = mysql_query("SELECT * FROM poll");
$row = mysql_fetch_array($result))
extract($row);
$allvotecount = $allvotes + 1;

SWITCH($_REQUEST['option'])
{
CASE "vote1":
  $feltnavn = "option1";
  $votecount = $option1 + 1;
BREAK;
CASE "vote2":
  $feltnavn = "option2";
  $votecount = $option2 + 1;
BREAK;
CASE "vote3":
  $feltnavn = "option3";
  $votecount = $option3 + 1;
BREAK;
CASE "vote4":
  $feltnavn = "option4";
  $votecount = $option4 + 1;
BREAK;
DEFAULT:

BREAK;
}
mysql_query("UPDATE `poll` SET `allvotes`='" . $allvotecount . "', `" . $feltnavn . "`='" . $votecount . "' WHERE `allvotes`='" . $allvotes . "'") or die(mysql_error());
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You have just voted! </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> View current result of the poll </a> </font>";
mysql_close($connection);
} else {
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You didn't choose what you wanted to vote for. </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> Go back </a> </font>";
}
echo "<br><br><br> <font face=Tahoma size=-1> <font face=Tahoma size=-1> You have just voted! </font> <br><br> <font face=Tahoma size=-2> <a href=http://www.blivion.1go.dk/misc.php> View current result of the poll </a> </font>";
?>

</body>
</html>


Hvis det er sådan her du mener hjælper det ikk...

Det er jo ude for funktionen så det her egentlig ikke nogen indflydelse. og for det andet så er der som sagt en fejl i koden så indeholdet af siden bliver ikke hvist.
Avatar billede dizzim Nybegynder
23. oktober 2004 - 19:30 #10
hvis de bare ligger ude er der jo ingen der får noget ud af det ;)
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