[need help] Umfrage Script!

sonnySTAR

Erfahrenes Mitglied
Guten Tag,
ich will mir ein Umfrage Script basteln das ohne Radiobuttons geht. Man klickt also nur auf den Link (z.B: Frage: Wie gehts? Antwort: Gut)! Wie ist dies zu ermöglichen ? Oder gibt es vielleicht eine fertige download version davon ? Was für eine Tabelle muss ich erstellen ?

Wäre für jede Idee sehr dankbar.

MFG
planuX
 
Zuletzt bearbeitet:
Ich habe nun eine Poll.php erstellt die folgendermaßen aussieht:
PHP:
<?php
$result = mysql_query("SELECT * FROM ".$pref."poll ORDER BY id DESC LIMIT 0,1",$link); 
while($poll = mysql_fetch_array($result))
{
	?>
<table width="215" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="63" class="poll_question"><div align="center">
          <table width="85%"  border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td class="poll_text_frage"><div align="center"><b><?=$poll[frage]?></b></div></td>
            </tr>
          </table>
        </div></td>
      </tr>
      <tr>
        <td class="poll_answer" height="21"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="9%">&nbsp;</td>
            <td width="91%" class="poll_text_ant"><div align="left">- <a href="?cont=pollentry&id=<?=$poll[id]?>&answer=1" class="pollanswer"><?=$poll[an1]?></a> </div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td class="poll_answer" height="21"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="9%">&nbsp;</td>
            <td width="91%" class="poll_text_ant"><div align="left">- <a href="?cont=pollentry&id=<?=$poll[id]?>&answer=2" class="pollanswer"><?=$poll[an2]?></a></div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td class="poll_answer" height="21"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="9%">&nbsp;</td>
            <td width="91%" class="poll_text_ant"><div align="left">- <a href="?cont=pollentry&id=<?=$poll[id]?>&answer=3" class="pollanswer"><?=$poll[an3]?></a></div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td class="poll_answer" height="21"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="9%">&nbsp;</td>
            <td width="91%" class="poll_text_ant"><div align="left">- <a href="?cont=pollentry&id=<?=$poll[id]?>&answer=4" class="pollanswer"><?=$poll[an4]?></a></div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td class="poll_answer" height="21"><table width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="9%">&nbsp;</td>
            <td width="91%" class="poll_text_ant"><div align="left">- <a href="?cont=pollentry&id=<?=$poll[id]?>&answer=5" class="pollanswer"><?=$poll[an5]?></a></div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td height="33" align="center" valign="middle" class="poll_submit"><table width="215" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="10" height="25"></td>
            <td width="94"><a href="?cmd=news"><img src="gfx/spot.gif" width="100%" height="25" alt="" border="0"></a></td>
            <td width="95"><a href="?cmd=news"><img src="gfx/spot.gif" width="100%" height="25" alt="" border="0"></a></td>
            <td width="16"></td>
          </tr>
        </table></td>
      </tr>
    </table></td>
  </tr>
</table>
<?php
}
?>

Wie müsste ich jetzt die pollentry.php gestalten ? ich weiss nicht wie ich es weitermachen soll :-/! Hättet ihr vielleicht ne idee ?
 
Hallo!

Hmm, fertige Lösungen gibt es sicherlich zu hauf..... da könnte dir evtl. Google helfen.

Erstmal solltest Du dir gedanken darüber machen, was Du damit bewirken willst.
Willst Du Statistiken darüber führen auf welche Frage wie oft mit welcher Antwort geantwortet wurde?
Wieviele mögliche Antworten soll es ungefähr geben?
Wie sieht deine Datenbanktabelle bisher aus?
Warum Textlinks? (diese werden per GET übergeben und könnten somit evtl. manipuliert werden)
Soll jeder antworten können oder nur bestimmte Leute?

Fragen über Fragen. ;)

Gruss Dr Dau
 
Also.
1. Ja ich möchte schon eine Statistik haben.
2. Mögliche Antworten soll es 5 geben. Aber immer 5, nicht irgendwie dynamisch.
3. Datenbanktabelle -> id, frage, antwort1, antwort1hits, antwort2 [usw. bis 5]
4.Textlinks deshalb, weil es in das Design besser reinpasst :)
5. Antworten sollten nur die können, die auch regestriert und eingeloggt sind :-/

Ich weiss, hab nen haufen vor *gg*

Wäre aber wenn mir jemand helfen könnte.

MFG
Tim
 
OK, die Datenbanktabelle habe ich mir auch so vorgestellt..... nur eine etwas andere Reihenfolge, aber die spielt keine grosse Rolle.
Bei 5 möglichen Antworten kann man es auch so machen..... bei z.b. 100 Antworten sollte man sicherlich eher mit mehreren Tabellen arbeiten.
Meine Frage nach den Statistiken bezog sich auf die Hits..... die hast Du ja schon berücksichtigt. ;)
Eine Userverwaltung (mit login?) hast Du schon?

Ich würde vorschlagen, das ganze Schritt für Schritt aufzubauen.
Dass heisst zuerst nur darauf zu konzentrieren, die Hits in die Datenbank einzutragen, dann die Ausgabe der Hits mit einbauen und zu letzt alles vom Login abhängig zu machen.

Die Links werden per GET an die pollentry.php übergeben.
Dort solltest Du als erstes mit einer if-Anweisung abfragen ob ein GET gesendet wurde (Vorzugsweise mit einem Vergleichsstring).
Wenn cont=pollentry nicht anderweitig vergeben ist, würde ich dieses dazu nutzen.
if($_GET['cont'] == pollentry)
Andernfalls würde ich die Links entsprechend erweitern.

Nun würde ich erstmal Variablen für die Spaltenname von den Antworten und den Hits erstellen.
Da die Spaltennamen bis auf die Zahl in den Namen ja identisch sind und diese Zahl auch per GET übergeben wird, ist es eigentlich ganz einfach.
$hits = "antwort".$_GET['answer']."hits"; (Spaltenname: z.b. antwort5hits).

Anschliessend machst Du ein Switch, in dem Du die Zahl aus $_GET['anwser'] für jede Anwort auf 1 als immer gleichlautende Variable setzt (wird zum hochzählen der Hits benötigt).
switch($_GET['answer']){
case "1": $zaehler = "1"; break;
case "2": $zaehler = "1"; break;
usw......
}

Nun macht Du wie gewohnt ein mysql_connect() und mysql_select_db().
Mit mysql_query() macht Du ein SELECT auf $_GET['id'] und $hits.
LIMIT kannst Du weglassen, da die ID ja eindeutig ist.
Und da die ID eindeutig ist und Du somit auch nur eine Zeile auslesen kannst, würde ich nicht mysql_fetch_array() nehmen, sondern mysql_fetch_row().
Dass spart Schreibarbeit und macht es übersichtlicher, denn nun müssen nicht mehr die Spaltennamen angegeben werden, sondern die Spalten die abgefragt werden bekommen ein Nummer, beginnend mit 0.
In diesem Fall also z.b. $row[0] für die ID und $row[1] für die Hits.

Jetzt machst Du eine Variable in der Du die Hits und den Wert aus dem Switch Addierst.
Z.b. $count = ($row[1] + $zaehler);

Nun kommt wieder ein mysql_query(), diesmal aber nicht zum Abfragen der Datenbank, sondern zum Updaten.
"UPDATE ".$pref."poll SET ".$hits."='".$count."' WHERE id='".$row['0']."';"

Mir stellt sich noch die Frage, woher Du $pref bekommst, denn die Variable brauchst Du ja auch für SELECT und UPDATE.
Evtl. solltest Du dies auch per GET übergeben.

So, dass war jetzt erstmal der grobe Teil um die Hits in die Datenbank einzutragen.
Wenn Du damit fertig bist, gehts mit der Ausgabe der Statistik weiter.
 
Okay, werde mich in der nächsten zeit mal daran Versuchen ;D. Die ".$pref." ist in der config.php gespeichert. und die config.php ist wiederrum in die index.php includiert. ;) also hat eigentlich shco alles einen zweck ;P. Ich danke dir für deine Antwort, falls ich nicht weiterkomme werde ich mich hier nochmal melden,

MFG
Tim

** EDIT **:

Wie soll denn die SELECT abfrage für das aussehen:
Mit mysql_query() macht Du ein SELECT auf $_GET['id'] und $hits.

Komme einfach nciht drauf. das mit $_GET['id'] ist ja verständlich, aber wofür denn die $hits ?

Wäre nett wenn du mir hilfst ;) und danke im vorraus
 
Zuletzt bearbeitet:
Na, lese doch mal, $hits ist eine Variable für die per GET übergebene Antwortzahl ($_GET['answer']) und dem Rest des Spaltennamen für die Hits (antwortZAHLhits).
Dass hat nur den Zweck, dass die query für SELECT und UPDATE nicht unnötig unübersichtlich wird.

mysql_query("SELECT ".$_GET['id'].",".$hits." FROM ".$pref."poll;")
 
Okay, nun hab ich verstnanden. Es funktioniert auch wunderbar. So, nun klappt das Voten schonmal. Wie könnte ich daraus jetzt eine Statistik erzeugen ? und wie kann ich eine Reloadsperre einbauen ? Also dass nicht jeder User 2 mal voten kann ?

Vielen Dank für deine hilfe

MFG
Tim

**EDIT**:
Ist das nicht möglich das mit sessions zu machen ? also beim voten dann -> $_SESSION["gevotet"] = true; und dann einfach abfragen if($_SESSION["gevotet"] == true) echo "statistik"; oder wie müsste das dann aussehen ?

**EDIT2**:
Okay, reloadsperre hab ich, aber wie sollte ich die statistik machen ? :-/
 
Zuletzt bearbeitet:
Zurück