Eine einfache Umfrage erstellen ....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Also ich grabe mir heute mein eigenes Grab. Bin ich denn wirklich so blöd oder sind das typische Anfängerschwierigkeiten? Man, ich will entlich, das die "einfache Umfrage" funktioniert.

    Unter MySQL habe ich die Spalte 'Date' in ein INT-Feld umgewandelt. Da stehen jetzt Werte wie 1007061022 drin. Ich denke, dass das wohl richig sein müsste. Aber das der Wähler erst alle 60 Minuten neuwählen darf, klappt immer noch nicht. Hier noch einmal der komplette Code: S.O.S.


    <?php

    $mysqlhost='';
    $mysqluser='';
    $mysqlpasswd='';
    $mysqldbname='';

    $db = mysql_connect($mysqlhost,$mysqluser,$mysqlpasswd);
    mysql_select_db($mysqldbname,$db);

    //IP-Adresse ermitteln:
    $ip=$REMOTE_ADDR;

    //Neues Voting in genau einer Stunde möglich:
    $date=time();
    $timediff = 60*60;


    //Datenbank aufrufen und IP-Adresse mit Datum(Zeit) vergleichen:
    $sql = "SELECT date FROM vote_christmas WHERE id='$ip' AND NOW()>DATE_ADD(date,INTERVAL $timediff SECOND)";
    $ergebnis = mysql_query($sql) or die($sql.'<br><br>'.mysql_error());

    if (mysql_num_rows($ergebnis)>=1) {
    $date = mysql_result($ergebnis,0);
    echo"<p><b> Du hast schon vor kurzem gewählt. \nEine Neuwahl ist erst
    nach einer Stunde möglich. Genau um: ".date("H:i:s",$date+$timediff);
    exit();
    }

    // Verbindung zur Datenbank herstellen
    $link = @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
    if ($link == FALSE) {
    echo "<p><b>Leider kann keine Verbindung zur Datenbank
    hergestellt werden. Daher können die Ergebnisse
    zur Zeit nicht angezeigt werden. Bitte versuchen
    Sie es später noch einmal.
    </body></html>\n";
    exit();
    }
    mysql_select_db($mysqldbname);

    // falls Formulardaten zur Verfügung stehen: auswerten + speichern
    if($submitbutton=="Stimme abgeben") {
    if($vote>=1 && $vote<=2) {
    mysql_query("INSERT INTO vote_christmas (choice,ip, ort, date) VALUES ('$vote','$ip','$ort', '$date')");
    }
    else {
    echo "<p>Keine gültige Wahl. Bitte wählen Sie
    noch einmal. Zurück zur
    <a href=\"./vote.html\">Weihnachtsumfrage</a>.
    </body></html>\n";
    exit();
    }
    }

    // Ergebnisse anzeigen
    echo "<P><B>Gibt es in diesem Jahr eine ''weiße Weihnacht''?</B>\n";

    // Anzahl der abgegebenen Stimmen
    $result = mysql_query("SELECT COUNT(choice) FROM vote_christmas");
    $choice_count = mysql_result($result, 0, 0);

    // Prozentzahlen für die einzelnen Ergebnisse
    if($choice_count == 0) {
    echo "<p>Es hat noch keiner gewählt.\n";
    }
    else {
    echo "<p>$choice_count Personen haben bisher an dieser
    Umfrage teilgenommen:<br>\n";
    $choicetext = array("", "Ja, natürlich.", "Nein, ich glaube nicht.");
    for($i=1; $i<=2; $i++) {
    $result = mysql_query(
    "SELECT COUNT(choice) FROM vote_christmas " .
    "WHERE choice = $i");
    $choice[$i] = mysql_result($result, 0, 0);
    $percent = round($choice[$i]/$choice_count*10000)/100;
    print("<br>$percent % - $choicetext[$i]\n");
    }
    }

    ?>

    Kommentar


    • #17
      Nicht INT sondern TIMESTAMP...

      CAT Music Files

      Kommentar


      • #18
        Dann kommt aber nur NULL raus!

        Kommentar


        • #19
          $sql = "SELECT date FROM vote_christmas WHERE id='$ip' AND NOW()>DATE_ADD(date,INTERVAL $timediff SECOND)";
          Da ist ein kleiner Tippfehler: WHERE id='$ip'
          Sollte das nicht WHERE ip='$ip' heißen?!?
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar

          Lädt...
          X