Geschrieben von sandrock-jonas am 26.03.2006, 13:50

Als Ausgang für dieses Tutorial habe ich eine Umfrage gewählt, die in folgendem Tutorial erklärt wird:
http://www.lima-city.de/tutorials.php?m=show&id=1004

Wir brauchen dazu folgende Dateien / Scripte / Tabellen:
- connect.inc.php (erklärt unter http://www.lima-city.de/tutorials.php?m=show&id=1004, diese Datei enthält die Zugangsdaten für die MySQL Datenbank)
- balken.gif (eine farbiges Bild, das 2px breit und 12px hoch ist)
- ergebnis.php (dieses Script stellt das Umfrageergebnis dar. Ich werde euch den Aufbau in diesem Tutorial zeigen)
- Die Tabelle „counter“ (erklärt unter http://www.lima-city.de/tutorials.php?m=show&id=1004, diese Datei enthält die Ergebnisse unserer Umfrage)

Nun zum Script ergebnis.php:

Zuerst setzen wir die Variablen, die wir brauchen:

$auswahl = array('Hund','Katze','Pferd','Eichhörnchen'); //hier stehen die Auswahlmöglichkeiten der Umfrage in einem Array
$umfrage = array(); //in diesem Array werden die Umfrageergebnisse gespeichert
$umfrage_length = array(); //in diesem Array speichern wir die errechnete Balkenlänge
$umfrage_gesamt = 0; //hier wird die Gesamtanzahl der Stimmen gepeichert, damit wir die Balkenlänge berechnen können
$maxlength = 400; //hier wird festgelegt, wie viele Pixel breit der Balken maximal werden darf

Als nächstes stellen wir eine Datenbankverbindung her und lesen die Daten aus:

include('connect.inc.php'); //Datenbankverbindung erstellen
$sql = mysql_query("SELECT * FROM counter WHERE id = '1'");

Nun speichern wir die Daten in das Array $umfrage und berechnen die Gesamtanzahl der abgegebenen Stimmen:

while ($row = mysql_fetch_object($sql)) {
$umfrage[0] = $row->hund;
$umfrage_gesamt += $row->hund;
$umfrage[1] = $row->katze;
$umfrage_gesamt += $row->katze;
$umfrage[2] = $row->pferd;
$umfrage_gesamt += $row->pferd;
$umfrage[3] = $row->eichhörnchen;
$umfrage_gesamt += $row->eichhörnchen;
};

Unsere Array enthält nun die Ergebnisse. Sie sind mit einem Schlüssel gekennzeichnet. Das Array sieht jetzt zum Beispiel so aus:
$umfrage = array(
'0' => '3', //3 Stimmen für Hund
'1' => '2', //2 Stimmen für Katze
'2' => '4', //4 Stimmen für Pferd
'3' => '0', //0 Stimmen für Eichhörnchen
);

Nun berechnen wir die Länge der Balken:

if ($umfrage_gesamt != 0) { //Diese Bedingung verhindert, dass man im folgenden Schritt durch 0 teilen könnnte. Das wäre der Fall, wenn noch keiner abgestimmt hat.
foreach ($umfrage as $key => $element) {
$umfrage_length[$key] = $element*$maxlength/$umfrage_gesamt;
}
} else { //wenn noch keiner abgestimmt hat, werden alle Balkenlängen auf 0 gesetzt
foreach ($umfrage as $key => $element) {
$umfrage_length[$key] = 0;
}
}

Nun stellen wir das Ergebnis in einer Tabelle dar:

echo '
<html>
<head>
<title>Umfrageergebnis</title>
</head>
<body>
<table border=\'0\'>
';
foreach ($umfrage as $key => $element) {
echo '
<tr style="vertical-align:middle">
<td style="text-align:right">
' . $auswahl[$key] . ':
</td>
<td style="text-align:left">
<img src="balken.gif" height="12px" width="' . $umfrage_length[$key] . 'px"> ' . $element . '
</td>
</tr>
';
}
echo '
</table>
</body>
</html>
';

Hier nochmal das gesamte Script: http://sandrock-jonas.xardas.lima-city.de/tut/ergebnis.txt
Und so könnte das ganze dann aussehen (natürlich müsst ihr das noch an euer Design anpassen):
http://sandrock-jonas.xardas.lima-city.de/tut/ergebnis.php

Ich hoffe, dass alles verständlich erklärt war.
Verbesserungsvorschläge & Kritik bitte per PN an mich: http://www.lima-city.de/mail.php?m=send&recipient=45742
Jonas

Bewertung Anzahl
6
66,7 %
4 Bewertungen
5
16,7 %
1 Bewertungen
4
16,7 %
1 Bewertungen