Umfrage Auswerten

Dolphon

Erfahrenes Mitglied
Moin.

Ich habe mir ein kleines Umfrage Skript geschrieben. Es sind 5 Fragen.
Jede Frage hat ein unterschiedliche Antwort Anzahl. Jede Antwort hat in der DB eine eigene Spalte. Wenn eine Antwort ausgewählt wird, wir eien 1 in die DB geschrieben.
Jetzt weiß ich nicht genau wie ich auf einer extra Seite die Auswertugn machen soll. Jede Antwort einer Frage soll mit der Prozentzahl versehen werden.
Beispiel:

1. War die Musik gut?

Ja! (Prozent)
NEIN! (Prozent)

2. blabla

blalba1 (Prozent)
blabla2 (Prozent)
blabla3 (Prozent)

Hat einer eien Idee wie ich das hinbekomme?

Um euch das antowrten leichter zu machen.
Er soll zuerst bei jeder Frage die Antworten nehmen wo eine 1 drin steht, udn diese dann zählen.
Dann kommt die Prozentrechnung.
Die Ausgabe bekomem ich selber hin.

MFG

Dolphon
 
Zuletzt bearbeitet:
Deine Tabellenstruktur scheint mir etwas komisch. Ich hätte die Tabellen etwa so strukturiert:
Code:
CREATE TABLE `fragen` (
  `frage_id`	INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `inhalt`	VARCHAR(255) NOT NULL,
  PRIMARY KEY (`frage_id`)
);

CREATE TABLE `antworten` (
  `antwort_id`	INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `frage_id`	INT UNSIGNED NOT NULL,
  `inhalt`	VARCHAR(255) NOT NULL,
  PRIMARY KEY (`antwort_id`)
);

CREATE TABLE `wahlen` (
  `wahl_id`	INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `frage_id`	INT UNSIGNED NOT NULL,
  `antwort_id`	INT UNSIGNED NOT NULL,
  PRIMARY KEY (`wahl_id`)
);
Natürlich können in der wahlen noch Angaben wie Datum, IP-Adresse, etc. angegeben werden.

Zur Auswertung könnte die Abfrage etwa so aussehen:
Code:
SELECT
        `fragen`.`inhalt`,
        `antworten`.`inhalt`,
        COUNT(`wahlen`.`wahl_id`) AS `wahlen_gesamt`,
        COUNT(`wahlen`.`antwort_id`) AS `anwort_gesamt`,
        (COUNT(`wahlen`.`antwort_id`)/COUNT(`wahlen`.`wahl_id`)*100) AS `antwort_prozentual`
  GROUP BY
        `frage_id`
  WHERE
        `fragen`.`frage_id` = x
;
Achja, alle Angaben ohne Gewähr.
 
Moin. So hab nun die Ausgabe hinbekommen:

PHP:
$query = "SELECT SUM(frage1_1) AS SUMME FROM umfrage";
if(!($result = mysql_query($query))) 
      die(mysql_error());  

$daten = mysql_fetch_array($result);
$summe = $daten['SUMME'];
echo $summe;

Allerdings würde wenn ich das obige bei den 10 weiteren Spalten so machen würde, ziemlich lang werden.
Wie kann ich das denn nun verkürzenwie ich die DB Abfrage dafür gestallten soll.
 
Zuletzt bearbeitet:
hab es jetzt so gelsöt. Wie kann ich denn nun die Ausgabe auf nur 2 Nachkommastellen begrenzen?

PHP:
$query = "SELECT SUM(frage1_1) AS SUMME, SUM(frage1_2) AS SUMME2 FROM umfrage";


  //$query = "SELECT frage1_1, frage1_2, frage2_1, frage2_2, frage2_3, frage2_4, frage3_1, frage3_2, frage3_3, frage3_4, frage3_5, frage4_1, frage4_2, frage5 FROM umfrage";
    
if(!($result = mysql_query($query))) 
      die(mysql_error());  

$daten = mysql_fetch_array($result);
$frage1summe = $daten['SUMME'] + $daten['SUMME2'];
$summe = $daten['SUMME'] * 100 / $frage1summe;
$summe2 = $daten['SUMME2'] * 100 / $frage1summe;




$query2 = "SELECT SUM(frage2_1) AS SUMME2_1, SUM(frage2_2) AS SUMME2_2, SUM(frage2_3) AS SUMME2_3, SUM(frage2_4) AS SUMME2_4 FROM umfrage";
           
if(!($result2 = mysql_query($query2))) 
      die(mysql_error());  

$daten2 = mysql_fetch_array($result2);
$frage2summe = $daten2['SUMME2_1'] + $daten2['SUMME2_2'] + $daten2['SUMME2_3'] + $daten2['SUMME2_4'];
$summe2_1 = $daten2['SUMME2_1'] * 100 / $frage2summe;
$summe2_2 = $daten2['SUMME2_2'] * 100 / $frage2summe;
$summe2_3 = $daten2['SUMME2_3'] * 100 / $frage2summe;
$summe2_4 = $daten2['SUMME2_4'] * 100 / $frage2summe;





$query3 = "SELECT SUM(frage3_1) AS SUMME3_1, SUM(frage3_2) AS SUMME3_2, SUM(frage3_3) AS SUMME3_3, SUM(frage3_4) AS SUMME3_4, SUM(frage3_5) AS SUMME3_5 FROM umfrage";
           
if(!($result3 = mysql_query($query3))) 
      die(mysql_error());  

$daten3 = mysql_fetch_array($result3);
$frage3summe = $daten3['SUMME3_1'] + $daten3['SUMME3_2'] + $daten3['SUMME3_3'] + $daten3['SUMME3_4'] + $daten3['SUMME2_5'];
$summe3_1 = $daten3['SUMME3_1'] * 100 / $frage3summe;
$summe3_2 = $daten3['SUMME3_2'] * 100 / $frage3summe;
$summe3_3 = $daten3['SUMME3_3'] * 100 / $frage3summe;
$summe3_4 = $daten3['SUMME3_4'] * 100 / $frage3summe;
$summe3_5 = $daten3['SUMME3_5'] * 100 / $frage3summe;


$query4 = "SELECT SUM(frage4_1) AS SUMME4_1, SUM(frage4_2) AS SUMME4_2 FROM umfrage";

   
if(!($result4 = mysql_query($query4))) 
      die(mysql_error());  

$daten4 = mysql_fetch_array($result4);
$frage4summe = $daten4['SUMME4_1'] + $daten4['SUMME4_2'];
$summe4_1 = $daten4['SUMME4_1'] * 100 / $frage4summe;
$summe4_2 = $daten4['SUMME4_2'] * 100 / $frage4summe;}
 
Zurück