kostenloser Webspace werbefrei: lima-city


Wie soll ich das Umfrage-Script machen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s******r

    Hallo

    Ich habe ein Problem. Ich habe eine Tabelle namens "umfrage_qsts" (Fragen), und "umfrage_answ" (Antworten).

    Nur wie soll ich die Umfrage machen? Es sind 4 Antworte-M?glichkeiten, und wie soll ich davon den Prozentsatz ausrechnen? Ich habe ja in der While-Schleife nur einen Tabelleneintrag zur verf?gung, und nicht alle...

    Ich wei? auch nicht, wie das mit den Arrays funktionieren sollte.. Es sollte kein Script sein, sondern eine Erkl?rung wie ich das Problem l?sen k?nnte..

    Hier ist mein Code:

    <?php
    include("mysql.php.inc");
    $res1 = mysql_query("SELECT * FROM umfrage_qsts LIMIT 1");
    while($row1 = mysql_fetch_array($res1)) {
    $res2 = mysql_query("SELECT * FROM umfrage_answ WHERE by_qst = $row1[id]");
    $num2 = mysql_num_rows($res2);
    while($row2 = mysql_fetch_array($res2)) {
    $id++;
    $votes = array("$id" => "$row2[votes]");
    }
    }
    echo $votes[1];
    ?>

    Nun wei? ich nicht, wie ich den Prozentsatz ausrechnen soll, und dann diesen Ausgeben soll..

    bis dann,
    scripter
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*********c

    ALSO:

    Z?hle alle Stimmen in der Tabelle zusammen.

    Rechne danach 100 geteilt durch die gesamte Anzahl der Stimmen (Ergebnis ist dann, wie viel Prozent EINE Stimme ausmacht!

    Dann musst Du nur noch die kleine Prozentzahl mal die Stimmen der einzelnen AUswahlm?glichkeiten rechnen!

    In der Praxis also:


    $einestimme = 100 / $gesamt; // 1% der gesamten Stimmen ausrechnen

    $hundp = $einestimme * $hund; // Stimmen f?r den Hund in % rechnen

    $katzep = $einestimme * $katze;

    $pferdp = $einestimme * $pferd;

    $eichhornchenp = $einestimme * $eichhornchen;
  4. Autor dieses Themas

    s******r

    Hallo

    Danke erstmal f?r die Hilfe!

    Nun ist aber das Problem, dass ich ja nicht wei? (das hei?t, dass Script) wieviele Antworten sind, und Wie sie hei?en! Also k?nnte ich die Variablennamen "$hund" oder so ja nicht nehmen?!

    Achja, w?rde da nicht, jede Stimme 25% haben?

    bis dann,
    scripter
  5. 0******a

    Wenn ich das richtig verstanden habe, dann gibt es zu jeder Frage vier Antwortm?glichkeiten und du willst jetzt f?r jede Frage bei deren Antworten die prozentuale Aufteilung haben, ja?
    Also irgendwie so:

    Frage 1: Wer ist doof?
    40% Ich
    20% Du
    20% Horst
    20% Niemand

    Frage 2: Wen w?hlst du?
    10% SPD
    10% CDU
    10% FDP
    70% Gr?ne

    Tabelle Umfrage kannst du dann so aufbauen:
    create table umfrage
    (
    umfrage_id int(10) auto_increment,
    question text not null,
    answer1 char(100),
    answer2 char(100),
    answer3 char(100),
    answer4 char(100),
    answer1_count int(10) default 0,
    answer2_count int(10) default 0,
    answer3_count int(10) default 0,
    answer4_count int(10) default 0,
    primary key (umfrage_id)
    );

    In question speicherst du die Frage (ist klar),
    in answerX die einzelnen Antwortm?glichkeiten als Text,
    und in answerX_count z?hlst du einfach die Antworten hoch. Also wenn jemand mit der Antwortm?glichkeit 2 antwortet, dann z?hlst du answer2_count um 1 hoch.
    Beim Auswerten des Skriptes z?hlst du erstmal alle answerX_count zusammen und danach berechnest du f?r jeden einzelnen answerX_count-Wert den Prozentsatz im Verh?ltnis zur Summe von answerX_count.

    Hoffe, ich habe das getroffen, was du meinst.
  6. Autor dieses Themas

    s******r

    Hallo

    Schon eher!

    Nur, ich brauche es halt in zwei Tabellen, da es nicht nur 4 Antwortem?glichkeiten sind, sondern eigentlich so viele wie man eingestellt hat.. Deshalb ja auch 2 Tabellen!

    <?php
    include("mysql.php.inc");
    $res1 = mysql_query("SELECT * FROM umfrage_qsts LIMIT 1");
    while($row1 = mysql_fetch_array($res1)) {
    $res2 = mysql_query("SELECT * FROM umfrage_answ WHERE by_qst = $row1[id]");
    $num2 = mysql_num_rows($res2);
    while($row2 = mysql_fetch_array($res2)) {
    $id++;
    $votes = array("$id" => "$row2[votes]");
    }
    }
    echo $votes[1];
    ?>

    Hier ist der Code! Das Problem da ist, dass der Array "$votes" nicht erstellt wird?!

    Mal eine Frage, k?nnte mir jemand diesen Script in ein Umfrage-Script ?ndern?

    Hier sind mal die beiden Tabellen Skizziert:

    "umfrage_qsts" (Fragen)

    id -> Kein Kommentar *1
    question -> Die Frage
    beschr -> Beschreibung

    "umfrage_answ" (Antworten)

    id -> Kein Kommentar
    answer -> Antwort
    by_qst -> Folgende ID wird eingetragen: *1 (Zwischen "by" und "qst" ist ein "_")
    votes -> Anzahl der Stimmen
    color -> Farbe ("yellow","red","green")

    W?r wirklich ganz lieb!

    bis dann,
    scripter
  7. k**********e

    eigentlich ganz klar, warum das script dir kein array $votes erstellt^^
    du ?berschreibs die deklaration in der while schleife immer wieder neu.

    <?php
    include("mysql.php.inc");

    $res1 = mysql_query("SELECT * FROM umfrage_qsts LIMIT 1");
    $row1 = mysql_fetch_array($res1);

    $res2 = mysql_query("SELECT * FROM umfrage_answ WHERE by_qst = $row1['id']");
    $num2 = mysql_num_rows($res2);
    $votes = array();
    while($votes[] = mysql_fetch_array($res2));
    array_pop($votes);

    echo '<pre>';
    print_r($votes);

    $gesammt = 0;
    for($i = 0; $i < count($votes); $i++)
    $gesammt += $votes[$i]['votes'];

    echo $votes;

    ?>

    ich denke den rest kannst du alleine
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!