Zudila AG

Webseiten-Erstellung
Webseiten-Programmierung
Webseiten-Wartung
8057 Zürich
Tel: +41 44 310 14 25
Fax: +41 44 310 14 26
Mob: +41 79 691 87 58
vCard, Skype: juergzuerich Skype: juergzuerich

PHP & MySQL: Umfrage v1.0



Browser: Firefox!
Umfrage

Hat Ihnen dieses Script geholfen?

ja

teilweise

wenig

nein



Umfrage, Funktion

Oft möcht man die Einschätzung der Besucher erfahren, mit einer einfach gestalteten Umfragemöglichkeit hat man eine gute Chancen diese zu erfahren.

Dazu erstellen wir ein Kästchen, wie rechts auf dieser Webseite, mit dem Titel Umfrage. Bewusst gibt es nur wenige Antwortmöglichkeiten.

Es wird beim Senden geprüft, ob überhaupt eine Antwort gewählt wurde und wenn ja, ob nicht bereits gewählt wurde (IP). Nach dem "senden" werden die Resultate angezeigt.

Ein Beispiel erüberigt sich, da die hier rechts eingeblendete Umfrage verwendet werden kann.


Zur Erstellung werden folgende Dateien benötigt:
- umfrage.php das auf den Webseiten einzubindende Script
- gruen.gif das Bild für den Prozentanteilsbalken
- stern.jpg für die Sterne
- umfrage_anz.php für den Administrator zur Gesamtübersicht
Als erstes erstellen wir, am Besten mit phpMyAdmin, in der MySQL-Datenbank unsere Tabelle.
Das Programm phpMyAdmin ist bei den meisten Providern bereits installiert und hilft uns, unsere Datenbank zu warten.


Code MySQL - Datenbank

PHP & MySQL: Umfrage v1.0, SQL Datenbank

  1. # Tabellenstruktur für Tabelle `umfrage`
  2.  
  3. CREATE TABLE `umfrage` (
  4.   `id_umfrage` int(11) NOT NULL AUTO_INCREMENT,
  5.   `frage` varchar(15) NOT NULL DEFAULT '',
  6.   `antwort` char(1) NOT NULL DEFAULT '',
  7.   `ip_umfrage` varchar(15) NOT NULL DEFAULT '',
  8.   `unix_time` int(11) NOT NULL DEFAULT '0',
  9.   PRIMARY KEY  (`id_umfrage`),
  10.   KEY `frage` (`frage`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  12.  
Script Update: 29.04.08

Erklärungen zum Code

Zu den Zeilen:

1: Hier steht als Kommentar der Inhalt dieses Scriptes. Dieser könnte auch weggelassen werden.

3 - 11: Die Definition unserer Tabelle

4: Die ID wird festgelegt, zudem wird angeben, dass diese sich selbst vergibt mittels einem Zähler (auto_increment).
Es empfiehlt sich, für die ID nie nur "id" zu verwenden, sondern immer einen Namen zu vergeben, der zur Tabelle passt. Denn, wenn mehrere Tabellen verwendet werden sollten, könnte es leicht zu Verwechselungen kommen.

5 - 10: Es folgen die diversen Felder.

5: Der Name der Umfrage. Damit können mit einer einzigen DB-Tabelle mehrere Umfragen ausgewertet werden.

6: Als Anzwort geben wir eine einstellige Ziffer, darum als Spaltentyp char(1). Mit Ziffern erleichtern wir uns die Auswertung massiv.

7: Zu jeder Eintragung wird die IP der Benutzers gespeichert.

8: Zu jeder Eintragung wird die UNIX-Zeit gespeichert, damit verhindern wir, dass ein Benutzer beliebig viele Eintragungen vornehmen kann.

10: Um die Abfragen aus der DB zu beschleunigen, legen wir einen Key auf "frage", was uns natürlich nur nützt wenn mehrere Fragen verwaltet werden.


Nun erstellen wir mit einem Editor eine Datei "umfrage.php" und fügen folgendes Script ein:


Code Umfrage

Datei: umfrage.php

PHP & MySQL: Umfrage v1.0, include

  1.  
  2. <!-- poll/umfrage.php -->
  3.  
  4. <?php
  5. // Mitgeben an dieses Script:
  6. // Frage für DB, max. 15 Zeichen -> $frage
  7. // Die eigentliche Frage         -> $fragestellung
  8. // Erklärung zur Frage           -> $fragezusatz
  9.  
  10. // Ausgangsbasis der Anzeigen
  11. $anzeigen_umfrage   = 'ja';
  12. $anzeigen_fehler    = 'nein';
  13. $anzeigen_fehler_ip = 'nein';
  14. $anzeigen_antwort   = 'nein';
  15. $anzeigen_ergebnis  = 'nein';
  16.  
  17. // Antwort senden
  18. if(isset($_POST['submit_umfrage'])) {
  19.   $antwort_f = strip_tags($_POST['antwort']);
  20.  
  21.   switch ($antwort_f) {
  22.     case '3':
  23.       $antwort_z = 'ja';
  24.       $antwort   = '3';
  25.       break;
  26.     case '2':
  27.       $antwort_z = 'teilweise';
  28.       $antwort   = '2';
  29.       break;
  30.     case '1':
  31.       $antwort_z = 'wenig';
  32.       $antwort   = '1';
  33.       break;
  34.     case '0':
  35.       $antwort_z = 'nein';
  36.       $antwort   = '0';
  37.       break;
  38.     default:
  39.       $antwort_z = '';
  40.       $antwort   = '';
  41.       break;
  42.     }
  43.   $ip_umfrage = substr(strip_tags($_POST['ip_umfrage']), 0, 15);
  44.   $frage      = substr(strip_tags($_POST['frage']), 0, 15);
  45.   $unix_time  = time();
  46.  
  47.   if ( $antwort == '' ) {
  48.     $anzeigen_fehler = 'ja';
  49.   }
  50.   else {
  51.     $unix_time_min = $unix_time - 7200 ; // Anzahl Sekunden für neue Abstimmung -> 2 Std.
  52.     $query_umfrage = "SELECT * FROM umfrage
  53.      WHERE frage = '".$frage."'
  54.      AND   ip_umfrage = '".$ip_umfrage."'
  55.      AND   unix_time  > '".$unix_time_min."'
  56.      ";
  57.     $result_umfrage = mysql_query($query_umfrage);
  58.     $num_umfrage    = mysql_num_rows($result_umfrage);
  59.  
  60.     if ( $num_umfrage == 0 ) {
  61.       $anzeigen_umfrage   = 'nein';
  62.       $anzeigen_antwort   = 'ja';
  63.       $anzeigen_ergebnis  = 'ja';
  64.       // eintragen in DB
  65.       $query_umfrage_e = "INSERT INTO umfrage (frage, antwort, ip_umfrage, unix_time)
  66.      VALUES('$frage','$antwort','$ip_umfrage','$unix_time')";
  67.       mysql_query($query_umfrage_e, $conn);
  68.     }
  69.     else {
  70.       $anzeigen_fehler_ip = 'ja';
  71.       $anzeigen_umfrage   = 'nein';
  72.       $anzeigen_ergebnis  = 'ja';
  73.     }
  74.   }
  75. }
  76. ?>
  77.  
  78. <div id="poll">
  79. <h6>Umfrage</h6>
  80.  
  81. <?php
  82. <p class="tooltipp" onmouseover="return overlib(\''.$fragezusatz.'\', CELLPAD, 5, 5, TEXTSIZE, \'10pt\' );"
  83. onmouseout="return nd();">'.$fragestellung.'</p>
  84. ';
  85.  
  86. if ( $anzeigen_fehler == 'ja' ) {
  87.     echo '<p class="center rot"><strong>Keine Auswahl!</strong></p>';
  88. }
  89. if ( $anzeigen_fehler_ip == 'ja' ) {
  90.     echo '<p class="center rot"><strong>Bereits Abgestimmt!</strong></p>';
  91. }
  92. if ( $anzeigen_umfrage == 'ja' ) {
  93.     echo '
  94. <form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" name="umfrage" id="umfrage" >
  95.     <fieldset>
  96.         <p><input type="radio" name="antwort" value="3" /> ja</p>
  97.         <p><input type="radio" name="antwort" value="2" /> teilweise</p>
  98.         <p><input type="radio" name="antwort" value="1" /> wenig</p>
  99.         <p><input type="radio" name="antwort" value="0" /> nein</p>
  100.         <p class="center"><input type="submit" class="kl" name="submit_umfrage" value="senden" /></p>
  101.     </fieldset>
  102.     <input type="hidden" name="ip_umfrage" value="'.$_SERVER['REMOTE_ADDR'].'" />
  103.     <input type="hidden" name="frage" value="'.$frage.'" />
  104. </form>
  105.     ';
  106. }
  107. if ( $anzeigen_antwort == 'ja' ) {
  108.   echo '
  109. <p class="center"><strong>Ihre Antwort:<br /><span class="rot">'.$antwort_z.'</span></strong></p>
  110.  ';
  111. }
  112. if ( $anzeigen_ergebnis == 'ja' ) {
  113.   echo '
  114. <p class="center"><strong>Das Ergebnis:</strong></p>
  115.  ';
  116.   $query_erg_3  = "SELECT COUNT(antwort) AS ant_3 FROM umfrage WHERE frage = '".$frage."'
  117.    AND antwort = '3' ";
  118.   $result_erg_3 = mysql_query($query_erg_3);
  119.   $ant_3        = mysql_result($result_erg_3,0,'ant_3');
  120.   if ($ant_3 == '' ) { $ant_3 = 0 ; }
  121.  
  122.   $query_erg_2  = "SELECT COUNT(antwort) AS ant_2 FROM umfrage WHERE frage = '".$frage."'
  123.    AND antwort = '2' ";
  124.   $result_erg_2 = mysql_query($query_erg_2);
  125.   $ant_2        = mysql_result($result_erg_2,0,'ant_2');
  126.   if ($ant_2 == '' ) { $ant_2 = 0 ; }
  127.  
  128.   $query_erg_1  = "SELECT COUNT(antwort) AS ant_1 FROM umfrage WHERE frage = '".$frage."'
  129.    AND antwort = '1' ";
  130.   $result_erg_1 = mysql_query($query_erg_1);
  131.   $ant_1        = mysql_result($result_erg_1,0,'ant_1');
  132.   if ($ant_1 == '' ) { $ant_1 = 0 ; }
  133.  
  134.   $query_erg_0  = "SELECT COUNT(antwort) AS ant_0 FROM umfrage WHERE frage = '".$frage."'
  135.    AND antwort = '0' ";
  136.   $result_erg_0 = mysql_query($query_erg_0);
  137.   $ant_0        = mysql_result($result_erg_0,0,'ant_0');
  138.   if ($ant_0 == '' ) { $ant_0 = 0 ; }
  139.  
  140.   $ant_tot      = $ant_3 + $ant_2 + $ant_1 + $ant_0;
  141.   $ant_mit      = ($ant_3 * 3 + $ant_2 * 2 + $ant_1) / $ant_tot ; // Mittelwert
  142.   $ant_ste      = $ant_mit / 3 * 5 ; // Anzahl Sterne
  143.   $stern_breite = round($ant_ste * 15, 0 ); // Anzahl Sterne mal deren Breite
  144.  
  145.   $proz_3 = round(100 / $ant_tot * $ant_3, 0);
  146.   $proz_2 = round(100 / $ant_tot * $ant_2, 0);
  147.   $proz_1 = round(100 / $ant_tot * $ant_1, 0);
  148.   $proz_0 = round(100 / $ant_tot * $ant_0, 0);
  149.  
  150.   echo '
  151.     <div>
  152.     <div class="stern" style="width:'.$stern_breite.'px"></div>
  153.     </div>
  154.  
  155.     <p><span class="proz">'.$proz_3.'&#37;</span>
  156.     <strong>ja</strong></p>
  157.     <img src="/poll/gruen.gif" width="'.$proz_3.'" height="12" alt="Anteil: ja" title="Anteil: ja" />
  158.  
  159.     <p><span class="proz">'.$proz_2.'&#37;</span>
  160.     <strong>teilweise</strong></p>
  161.     <img src="/poll/gruen.gif" width="'.$proz_2.'" height="12" alt="Anteil: teilweise" title="Anteil: teilweise" />
  162.  
  163.     <p><span class="proz">'.$proz_1.'&#37;</span>
  164.     <strong>wenig</strong></p>
  165.     <img src="/poll/gruen.gif" width="'.$proz_1.'" height="12" alt="Anteil: wenig" title="Anteil: wenig" />
  166.  
  167.     <p><span class="proz">'.$proz_0.'&#37;</span>
  168.     <strong>nein</strong></p>
  169.     <img src="/poll/gruen.gif" width="'.$proz_0.'" height="12" alt="Anteil: nein" title="Anteil: nein" />
  170.  
  171.     <p>'.$ant_tot.' Teilnehmer</p>
  172.  ';
  173. }
  174. ?>
  175.  
  176. </div>
  177.  
  178. <!--
  179. Quelle Script: http://www.zudila.ch/scripte/php_umfrage.php
  180. Zudila Umfrage v1.0, GPL
  181. -->
  182.  
  183. <!-- /poll/umfrage.php -->
  184.  
Script Update: 29.04.08

Erklärungen zum Code

Es versteht sich, dass dieses Script so alleine nicht funktioniert! Dazu muss es in eine Webseite eingebunden werden,
Beispiel mit: <?php include(poll/umfrage.php); ?>, je nach dem Pfad.
Empfehlenswert ist auch dieses Verzeichnis mit einer .htaccess-Datei zu schützen!
Zudem, muss die Datenbank bereits bekannt sein: MySQL Datenbankzugang.
Auch ist zu beachten, dass die hier verwendeten Variablen in den Webseiten wo dieses Script includiert wird, nicht bereits verwendet werden.

Zu den Zeilen:

1: Abstand um den Quelltext übersichtlicher zu halten.

2: Im Quelltext soll stehen, dass der folgende Teil includiert wird, das hilft bei einer Fehlersuche.

5 - 8: Hier stehen die erwarteten externen Variablen.
$frage: der Titel in der DB.
$fragestellung: die angezeigte Frage (im Beispiel grün).
$fragezusatz: der per JavaScript eingeblendete Zusatztext beim Überfahren der Fragestellung. Wichtig, diese Variable darf keinen Zeilenumbruch enthalten.

11 - 15: Welche Teile angezeigt werden, wenn man neu auf diese Webseite kommt wird hier festgelegt. Diese Struktur erleichtert uns die Übersicht im Ablauf massiv.

18 - 75: Die zu durchlaufenden Zeilen beim Senden des Formulares.

19: Übernahme von "antwort".

21 - 42: Mit der Funktion "switch" prüfen wir nun die "antwort". Wichtig, in case müssen die Ziffern in "'" stehen! Zur Anzeige ordnen wir den Ziffern Texte zu.
Sollte keine der erwarteten Ziffern übergeben worden sein (default), wird der "antwort" NULL zugeordnet.

43 + 44: Die restliche Variablen werden übernommen.

45: Der aktuelle Zeitpunkt wird als UNIX-Zeit ermittelt.

47 - 49: Sollte beim Senden nichts ausgewählt worden sein, so wird die Verarbeitung beendet und dafür die Fehlermeldung von Zeile 87 - 89 angezeigt.

50 - 74: Ist ein richtige "antwort" vorhanden werden diese Zeilen durchlaufen.

51: Wir legen die Sperrzeit fest, in der mit der gleichen IP nicht nochmals abgestimmt werden kann.
Man darf eine IP nicht einfach für immer sperren! Denn fast alle Benutzer kommen mit einer dynamisch zugeteilten IP.

52 - 58: Abfrage in de DB, ob bereits abgestimmt wurde.

60 - 68: Ist kein entsprechender Eintrag bereits vorhanden, kann dieser nun in die DB eingetragen werden.
Die anzuzeigenden Teile werden zugeordnet.

69 - 73: Wurde bereits abgestimmt, erfolgt nur die Anzeige der Ergebnisse.

78 - 177: Der auf der Webseite anzuzeigende Block. Er wird mit der id="poll" umfasst und per CSS definiert.

82 - 85: Die extern definierten Variablen werden eingebunden. Hier wird auch der bei onMouseOver angezeigte Block definiert. Mehr dazu unter: overLIB, oder mit Analyse dierer Webseite und deren Einbindung der JavaScripte.

87 - 89: Der Teil, wenn keine Auswahl erfolgte.

90 - 92: Der Teil, wenn bereits abgestimmt wurde.

93 - 107: Der Teil, wenn noch abgestimmt werden kann.

95 - 105: Das eigentliche Formular.

96 + 102: "fieldset" erzeugt einen Rahmen und verbindet die Eingabefelder logisch.

103: Wir ermitteln die IP um sie versteckt dem Formular mitzugeben.

104: die extern festgelegte "frage" wird mitgegeben.
Sollten wir mehrere Umfragen benötigen, so muss nur dieser Wert angepasst werden.

108 - 112: Die eigene Antwort wird allenfalls angezeigt.

113 - 174: Das allenfalls anzuzeigende Ergebnis.

117 - 120: Nun werden alle "ja" (= 3) zur entstrechenden "frage" summiert. Also wie oft kommt "ja" vor?

121: Sollte noch kein eintag dazu vorhanden sein, eine "0" gesetzt.

117 - 121: Danach wird dieser Teil noch 3 x ausgeführt, für jede der möglichen Antworten. Dies könnte in einer Schlaufe schöner und etwas kürzer programmiert werden. Die saubere Lösung ist aber nicht einfacher nachzuvollziehen. In Anbetracht von nur 4 Antworten lassen wir es so.

Für die Grafische Ausgabe berechnen wir nun verschiedene Werte.

141: Das Total aller Antworten.

142: Der Mittelwert aller Antworten. Nun ist ersichtlich, wieso wir in der DB keine Texte sondern nur Werte eingegeben haben, das Rechnen ist so sehr einfach.

143: Im Ergebnis zeigen wir 0 - 5 Sterne an. Wir waben aber Werte zwischen 0 und 3. Somit rechnen wir die Anzahl der Sterne um.

144: in der Anzeige sind maximal 5 Sterne mit je einer Breite von 15 Pixel sichtbar. Wir rechnen nun die Anzahl Pixel aus, die in der Breite gezeigt werden. So kann auch nur ein Teil eines Sternes ersichtlich sein.
Die Rundung ist nötig, da nur ganze Pixel gezeigt werden können.

146 - 149: Für die grünen Balken muss deren Breite berechnet werden. Für 100 % würde der Balken genau 100 Pixel breit, das in unserem Beispiel gut geht, denn der ganze Kasten ist 120 Pixel breit. Ansonsten müsste hier mit einem Faktor die Breite angepasst werden.

152 - 154: Dieser einfache Quellcode ist etwas tricky!
Die richtige Darstellung geschieht nur mittels CSS.
Das Äussere "div" erstellt eine Box mit weissem Hintergrund und schwarzem Rahmen mit 1 Pixel Breite und positioniert es richtig.
Das innere "div" hat als Hintergrundbild den Stern der sich seitlich wiederholt. Der Trick ist nun, dass die Breite dieses "div" errechnet wurde. Nur so lassen sich die Sterne nur teilweise anzeigen!

156 - 157: Rechts wird die Antwort angezeigt "ja" und links etws kleiner der Wert in Prozent. Wichtig ist, dass zuerst der Wert ansgegeben wird und danach das "ja", ansonsten kommt nicht beides auf eine Linie!

158: Für den Balken haben wir ein gif-Bildchen von 1 x 12 Pixeln erstellt. Da wir nun die Breite dynamisch angeben, wird das Bild einfach gestreckt.


Code CSS

Datei: umfrage.css

PHP & MySQL: Umfrage v1.0, CSS

  1. #poll           { margin:10px 0 10px 0; padding:3px; width:114px; background-color:#ffff99; }
  2. #poll h6        { font-size:17px; margin-top:5px; margin-bottom:5px; text-align:center; margin-left:auto; margin-right:auto; }
  3. #poll p         { margin:4px 0 4px 0; padding:0; font-size:12px; line-height:100%; }
  4. #poll form      { margin:0; padding:0; }
  5. #poll fieldset  { margin:0; padding:3px; }
  6. #poll .rot      { color:#ff0000; }
  7. #poll .center   { text-align:center; margin-left:auto; margin-right:auto; }
  8. #poll div       { margin:7px 20px 2px 20px; padding:0; height:15px; width:75px; border: solid #000000 1px; background-color: #ffffff;}
  9. #poll .stern    { margin:0; padding:0; border:0; background-repeat:repeat-x; background-image: url(poll/stern.jpg); }
  10. #poll .proz     { float:right; font-size:10px; }
  11.  
Script Update: 03.08.07

Erklärungen zum Code

Es sind hier nur die entscheidenden Angaben angegeben. Wichtig ist, dass die Vererbungen stimmen. Alle CSS-Angaben können dem Quelltext dieser Webseite entnommen werden.


Die nötigen Bilder sind direkt ab dieser Webseite zu kopieren.
Für andere Sterne suche man sich allenfalls andere Motive. Wichtig, entweder sind die Bilder auch 15 x 15 Pixel formatiert, oder das Script wird angepasst.
Für den Balken kann einfach ein anderes Bild verwendet werden.


Code Umfrage Admin Anzeigen

Datei: umfrage_anz.php

PHP & MySQL: Umfrage v1.0, Admin Anzeigen

  1. <?php print '<?xml version="1.0" encoding="iso-8859-1" ?>' ; ?>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-ch" lang="de-ch">
  6. <head>
  7. <title>Intern</title>
  8. </head>
  9.  
  10. <body>
  11.  
  12. <?php
  13. include_once('inc.php'); // include der Datenbank
  14. ?>
  15.  
  16. <h2>Umfragen</h2>
  17.  
  18. <table summary="Umfrage-Ergebnisse">
  19.     <colgroup>
  20.         <col width="100" />
  21.         <col width="50" />
  22.         <col width="50" />
  23.         <col width="50" />
  24.         <col width="50" />
  25.         <col width="50" />
  26.         <col width="50" />
  27.         <col width="50" />
  28.         <col width="50" />
  29.         <col width="50" />
  30.         <col width="50" />
  31.     </colgroup>
  32.     <thead>
  33.     <tr>
  34.         <th class="blun">Frage</th>
  35.         <th class="blun" colspan="2">Total</th>
  36.         <th class="blun" colspan="2">ja</th>
  37.         <th class="blun" colspan="2">teilweise</th>
  38.         <th class="blun" colspan="2">wenig</th>
  39.         <th class="blun" colspan="2">nein</th>
  40.     </tr>
  41.     </thead>
  42.  
  43. <?php
  44. $query  = "SELECT frage, COUNT(frage) AS total FROM umfrage GROUP BY frage ORDER BY frage";
  45. $result = mysql_query($query);
  46. $num    = mysql_num_rows($result);
  47.  
  48. for ($i = 0; $i < $num; $i++){
  49.     $row = mysql_fetch_array($result);
  50.  
  51.   $query_erg_3  = "SELECT COUNT(antwort) AS ant_3 FROM umfrage WHERE frage = '".$row['frage']."'
  52.         AND antwort = '3' ";
  53.     $result_erg_3 = mysql_query($query_erg_3);
  54.     $ant_3        = mysql_result($result_erg_3,0,'ant_3');
  55.     if ($ant_3 == '' ) { $ant_3 = 0 ; }
  56.  
  57.   $query_erg_2  = "SELECT COUNT(antwort) AS ant_2 FROM umfrage WHERE frage = '".$row['frage']."'
  58.         AND antwort = '2' ";
  59.     $result_erg_2 = mysql_query($query_erg_2);
  60.     $ant_2        = mysql_result($result_erg_2,0,'ant_2');
  61.     if ($ant_2 == '' ) { $ant_2 = 0 ; }
  62.  
  63.   $query_erg_1  = "SELECT COUNT(antwort) AS ant_1 FROM umfrage WHERE frage = '".$row['frage']."'
  64.         AND antwort = '1' ";
  65.     $result_erg_1 = mysql_query($query_erg_1);
  66.     $ant_1        = mysql_result($result_erg_1,0,'ant_1');
  67.     if ($ant_1 == '' ) { $ant_1 = 0 ; }
  68.  
  69.   $query_erg_0  = "SELECT COUNT(antwort) AS ant_0 FROM umfrage WHERE frage = '".$row['frage']."'
  70.         AND antwort = '0' ";
  71.     $result_erg_0 = mysql_query($query_erg_0);
  72.     $ant_0        = mysql_result($result_erg_0,0,'ant_0');
  73.     if ($ant_0 == '' ) { $ant_0 = 0 ; }
  74.  
  75.     // Prozentangaben einzel
  76.     $pro_ant_3 = round(100 / $row['total'] * $ant_3, 0 );
  77.     $pro_ant_2 = round(100 / $row['total'] * $ant_2, 0 );
  78.     $pro_ant_1 = round(100 / $row['total'] * $ant_2, 0 );
  79.     $pro_ant_0 = round(100 / $row['total'] * $ant_0, 0 );
  80.  
  81.     // Summen in letzter Zeile
  82.     $sum_total = $sum_total + $row['total'];
  83.     $sum_ant_3 = $sum_ant_3 + $ant_3;
  84.     $sum_ant_2 = $sum_ant_2 + $ant_2;
  85.     $sum_ant_1 = $sum_ant_1 + $ant_1;
  86.     $sum_ant_0 = $sum_ant_0 + $ant_0;
  87.  
  88.     echo '
  89.     <tr>
  90.       <td>'.$row['frage'].'</td>
  91.       <td class="rechts">'.$row['total'].'</td>
  92.       <td class="rechts kl">100 &#37;</td>
  93.       <td class="rechts">'.$ant_3.'</td>
  94.       <td class="rechts kl">'.$pro_ant_3.' &#37;</td>
  95.       <td class="rechts">'.$ant_2.'</td>
  96.       <td class="rechts kl">'.$pro_ant_2.' &#37;</td>
  97.       <td class="rechts">'.$ant_1.'</td>
  98.       <td class="rechts kl">'.$pro_ant_2.' &#37;</td>
  99.       <td class="rechts">'.$ant_0.'</td>
  100.       <td class="rechts kl">'.$pro_ant_0.' &#37;</td>
  101.     </tr>
  102.     ';
  103. }
  104.  
  105. // Prozentangaben summe
  106. $pro_sum_ant_3 = round(100 / $sum_total * $sum_ant_3, 0 );
  107. $pro_sum_ant_2 = round(100 / $sum_total * $sum_ant_2, 0 );
  108. $pro_sum_ant_1 = round(100 / $sum_total * $sum_ant_1, 0 );
  109. $pro_sum_ant_0 = round(100 / $sum_total * $sum_ant_0, 0 );
  110.  
  111.     <tr>
  112.       <td><strong>Total</strong></td>
  113.       <td class="rechts"><strong>'.$sum_total.'</strong></td>
  114.       <td class="rechts kl"><strong>100 &#37;</strong></td>
  115.       <td class="rechts"><strong>'.$sum_ant_3.'</strong></td>
  116.       <td class="rechts kl"><strong>'.$pro_sum_ant_3.' &#37;</strong></td>
  117.       <td class="rechts"><strong>'.$sum_ant_2.'</strong></td>
  118.       <td class="rechts kl"><strong>'.$pro_sum_ant_2.' &#37;</strong></td>
  119.       <td class="rechts"><strong>'.$sum_ant_1.'</strong></td>
  120.       <td class="rechts kl"><strong>'.$pro_sum_ant_1.' &#37;</strong></td>
  121.       <td class="rechts"><strong>'.$sum_ant_0.'</strong></td>
  122.       <td class="rechts kl"><strong>'.$pro_sum_ant_0.' &#37;</strong></td>
  123.     </tr>
  124. ';
  125. ?>
  126.  
  127. </table>
  128.  
  129. </body>
  130. </html>
  131.  
Script Update: 06.08.07
Vielleicht hat Ihnen unser Skript ein paar Stunden Arbeit erspart?

Copyright © 1998 - 2010, Zudila AG, CH 8057 Zürich Diese Seite (www.zudila.ch/scripte/php_umfragen.php) wurde aktualisiert: 23.07.09

Besucher heute: 160 Seitenaufrufe heute: 567 gerade online: 2
Besucher gestern: 220 Seitenaufrufe gestern: 470 max. online: 135
Besucher pro Tag: 206,52 Seitenaufrufe pro Tag: 680,53 Eigene Seitenaufrufe: 63
Valid XHTML 1.0! Valid CSS! Valid WCAG 1.0, WAI-AAA! ICRA Best viewed with any browser

www.zudila.ch   info@zudila.ch

nach oben
Herr Jürg Dieter Lüthard Jürg D. Lüthard Zudila AG www.zudila.ch Krokusweg 6 Switzerland 8057 Zürich Zürich +41 44 310 14 25 +41 79 691 87 58 +41 44 310 14 26
N 47º 24.2416 O 8º 32.9866
business Webseiten erstellen, programmieren, warten /
Web pages provide, program, wait /
Les pages Web fournissent, programment, attendent