Derzeit online: ca. 57 User  
Spenden via PayPal Es ist geschafft! PHP für dich ist ab sofort auch als Buch erhältlich. Endlich im handlichen Format, zum Nachschlagen, mitnehmen oder gemütlich nebenbei lesen. Mit noch mehr Informationen und zusätzlichen Beispielen!
Jetzt bei Amazon oder BoD bestellen!


Schnipsel

PHP und mySQL - Umfrageergebnis grafisch darstellen

Dieses Beispiel baut auf der Beispiel-Umfrage auf und wertet diese aus.

Da die Umfrageergebnisse grafisch dargestellt werden sollen, benötigen wir zunächst eine Grafik. Ich möchte im Endeffekt ein Balkendiagramm haben, das ungefähr so aussehen soll:

Katze40 %40 %
Hund30 %30 %
Nagetier20 %20 %
Sonstiges10 %10 %

Dabei reicht für die Balken eine 1 x 1 Pixel große, einfarbige Grafik aus - wir vergrößern sie danach einfach passend (bei einfarbigen Grafiken ist das problemlos möglich, wenn man einen Verlauf möchte, sollte man die Grundgrafik etwas größer machen).

Jetzt können wir uns daran machen, die Daten aus der Datenbank abzufragen:
<?php
$abfrage = mysql_query("SELECT count FROM haustierwunsch
WHERE id = '1'");
$ergebnis = mysql_fetch_object($abfrage);
$katzenwunsch = $ergebnis->count;
?>
Wir fragen dabei jedes Tier einzeln ab und übertragen den Wert aus der Spalte count - also die Häufigkeit des Wunsches nach einem bestimmten Tier - gleich in eine Variable. Das machen wir jetzt nach dem gleichen Schema mit allen drei Möglichkeiten und speichern diese in die Variablen $hundewunsch, $nagerwunsch und $sonstigerwunsch.

Eine schönere Variante ist, das ganze über variable Variablen zu lösen - allerdings ist dieser Weg für Anfänger auch schwerer verständlich, weswegen ich das jetzt nicht erkläre. Also bitte keine Angst bekommen. Auch wenn zu diesen gesamten Vorgängen der Datenbankprogrammierung und -abfrage natürlich spezielle Studiengänge angeboten werden (und bei einer professionellen Herangehensweise durchaus sinnvoll sind), so brauchst du für meinen hier dargestellten Weg keinen Bachelor oder sonstigen Studienabschluss. Auch nicht, wenn´s jetzt mit Prozenten und Berechnungen weiter geht. Denn:

Jetzt benötigen wir nur ein wenig Mathematik, da wir die einzelnen Zahlen in Prozentsätze umrechnen müssen. Dafür addieren wir zunächst alle Ergebniszahlen und berechnen danach die einzelnen Prozentwert:
<?php
$gesamt = $katzenwunsch + $hundewunsch + $nagerwunsch +
$sonstigerwunsch;
$katzenprozent = $katzenwunsch * 100 / $gesamt;
$hundeprozent = $hundewunsch * 100 / $gesamt;
$nagerprozent = $nagerwunsch * 100 / $gesamt
$sonstprozent = $sonstigerwunsch * 100 / $gesamt;
?>
Mit Hilfe der Prozentsätze wird jetzt die Breite des Balken, also der Grafik bestimmt. Wollen wir zB, dass der Balken maximal 300 Pixel breit sein darf, wenn ein Wert 100 % hat, so ist jeder Prozentpunkt 3 Pixel breit (maximale Breite / 100). Dieses Wissen können wir dann verwenden, um zu berechnen, wie breit zB 20 % wären (Breite eines Prozents * Prozent).
<?php
$katzenbalken = $katzenprozent * 3;
$hundebalken = $hundeprozent * 3;
$nagerbalken = $nagerprozent * 3;
$sonstbalken = $sonstprozent * 3;
?>
Und jetzt müssen wir diese ganzen Berechnungen nur noch anzeigen lassen, zB in einer Tabelle:
<table>
<tr>
<td>Katzen</td>
<td><img src="balken.gif" width="<?php echo $katzenbalken; ?>"
height="10" alt="<?php echo $katzenprozent; ?> %"></td>
<td><?php echo $katzenprozent; ?> %</td>
</tr>
<tr>
<td>Hunde</td>
<td><img src="balken.gif" width="<?php echo $hundebalken; ?>"
height="10" alt="<?php echo $hundeprozent; ?> %"></td>
<td><?php echo $hundeprozent; ?> %</td>
</tr>
<tr>
<td>Nager</td>
<td><img src="balken.gif" width="<?php echo $nagerbalken; ?>"
height="10" alt="<?php echo $nagerprozent; ?> %"></td>
<td><?php echo $nagerprozent; ?> %</td>
</tr>
<tr>
<td>Sonstiges</td>
<td><img src="balken.gif" width="<?php echo $sonstbalken; ?>"
height="10" alt="<?php echo $sonstprozent; ?> %"></td>
<td><?php echo $sonstprozent; ?> %</td>
</tr>
</table>
Für diese Auswertung eines Umfrageergebnisses gibt es natürlich noch viele andere Varianten und Einsatzmöglichkeiten (zB auch bei einer Marktanalyse), viel Vergnügen also beim Herumprobieren und Austesten.
© 2001 - 2010 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen