Avatar billede zeattle Nybegynder
13. december 2004 - 17:41 Der er 11 kommentarer og
1 løsning

Hvis ip har votet så vis andet

Hej

Jeg vil gerne have sådan på min afstemning at hvis folk har stemt så viser den resultater på den senete afstemning(på forsiden)

Den viser lige nu bare den første poll uanset om man har stemt eller ej.

Filen kan hentes på:
www.dinfar.dk/vote.phps

Og mysql tabeller ses her:
CREATE TABLE `z_polltemplate` (
  `id` int(11) NOT NULL default '0',
  `question` varchar(255) NOT NULL default '',
  `response` varchar(255) NOT NULL default '',
  `datecreate` date NOT NULL default '0000-00-00',
  `dateexpire` date NOT NULL default '0000-00-00'
) TYPE=MyISAM;

og

CREATE TABLE `z_pollcontent` (
  `pollid` int(11) NOT NULL default '0',
  `pollresponse` varchar(255) NOT NULL default '',
  `userip` varchar(16) NOT NULL default ''
) TYPE=MyISAM;

Håber en kan hjælpe.
Avatar billede coderdk Praktikant
13. december 2004 - 17:55 #1
Prøv at ændre funtionen outputafterpost til:

function outputafterpost($voted, $userresponse, $pollid, $alreadyvotedmessage)
{
if ($voted==1)
{
    echo "<center>";
    echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"5\" width=\"100%\" valign=top>";
    echo "<tr valign=top>";
    echo "<td width=\"100%\" valign=top align=left class=\"bkpattern\">";
    echo "$alreadyvotedmessage";
    echo "</td></tr>";
    echo "</table>";
    echo "</center>";
    showresults( $pollnumber );
}
else
{
    castvote($pollid, $userresponse);
    $pollnumber= getlastpoll();
    showresults($pollnumber);
}
}
Avatar billede Slettet bruger
13. december 2004 - 17:56 #2
På siden hvor man bliver sendt hen når man stemmer laver du følgende query:

mysql_query("INSERT INTO z_pollcontent SET ('pollid', 'pollresponse', 'userip') VALUES ('something!', 'Something!', '".$_SERVER['REMOTE_ADDR']."')");

På siden som viser pollen:


//
//alm side content....
//
$result = mysql_query("SLECT userip FROM z_pollcontent WHERE userip='".$_SERVER['REMOTE_ADDR']."'");
if (mysql_num_rows($result) == 0) {
  //vis alm poll
} else {
  //vis resultat
}
//
//alm side content....
//
Avatar billede coderdk Praktikant
13. december 2004 - 17:57 #3
Det skulle naturligvis have været:

function outputafterpost($voted, $userresponse, $pollid, $alreadyvotedmessage)
{
if ($voted==1)
{
    echo "<center>";
    echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"5\" width=\"100%\" valign=top>";
    echo "<tr valign=top>";
    echo "<td width=\"100%\" valign=top align=left class=\"bkpattern\">";
    echo "$alreadyvotedmessage";
    echo "</td></tr>";
    echo "</table>";
    echo "</center>";
    showresults( $pollid );
}
else
{
    castvote($pollid, $userresponse);
    $pollnumber= getlastpoll();
    showresults($pollnumber);
}
}
Avatar billede coderdk Praktikant
13. december 2004 - 18:01 #4
Og hvis det er godt nok, kan du ændre den til:

function outputafterpost($voted, $userresponse, $pollid, $alreadyvotedmessage)
{
if ($voted==1)
{
    echo "<center>";
    echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"5\" width=\"100%\" valign=top>";
    echo "<tr valign=top>";
    echo "<td width=\"100%\" valign=top align=left class=\"bkpattern\">";
    echo "$alreadyvotedmessage";
    echo "</td></tr>";
    echo "</table>";
    echo "</center>";
}
else
{
    castvote($pollid, $userresponse);
}
showresults($pollid);
}

jeg går ud fra at linjen:

    $pollnumber= getlastpoll();

har været en fejl, den ser i hvert tilfælde overflødig ud...
Avatar billede zeattle Nybegynder
13. december 2004 - 18:34 #5
Hmm jeg har prøvet de forskellige det ene er nok mest rigtigt men det virker dog slet ikke.

Jeg skal have såen at på forsiden der henter den det sidste afstemning som er blevet oprettet(gør den som sagt) men hvis man allerede har stemt på den poll(via ip) så skal den bare vise resultater.

Det vil sige jeg skal have fat i disse linier(vil jeg da tro)
function getlastpoll()
{
$result = mysql_query("SELECT * FROM z_polltemplate ORDER by id DESC");
$pollid = mysql_result($result, 0, "id");
return($pollid);
}

Men hvordan det lige laves ved jeg ikke helt.
Avatar billede coderdk Praktikant
13. december 2004 - 19:46 #6
Så vidt jeg kan se burde min kommentar fra 13/12-2004 18:01:03 virke...? Du skal bare udskifte den eksisterende funktion...
Avatar billede zeattle Nybegynder
13. december 2004 - 20:17 #7
Den skal ikke vise beskeden at man har afstemningen, men resultater fra afstemningen
Avatar billede coderdk Praktikant
13. december 2004 - 20:31 #8
Den viser begge, men hvis du ikke vil have beskeden:

function outputafterpost($voted, $userresponse, $pollid, $alreadyvotedmessage)
{
if ($voted!=1)
{
    castvote($pollid, $userresponse);
}
showresults($pollid);
}
Avatar billede zeattle Nybegynder
13. december 2004 - 22:08 #9
gaaaah

BARE GLEM ALT OM DEN BESKED, LAD DEN VÆRE.

når man går på index.php skal den vise den sidste lavet afstemning hvis man IKKE allerede har stemt på den. Hvis man har stemt på den, så skal den bare vise resultater og ikke den besked, er det virkelig så svært at forstå? Forklare jeg mig dårligt?
Avatar billede zeattle Nybegynder
14. december 2004 - 15:46 #10
Hvis i gider lægge svar(coderdk og gartzen) så kan I få points, jeg har fået det til at virke.
Avatar billede coderdk Praktikant
14. december 2004 - 15:48 #11
Cool :)
Avatar billede coderdk Praktikant
18. december 2004 - 13:54 #12
Sker der noget? :)
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