Derzeit online: ca. 82 User  
Spenden via PayPal PHP für dich ist auch als Buch erhältlich - im handlichen Format, zum Nachschlagen, Mitnehmen oder gemütlichen nebenbei Lesen. Mit noch mehr Informationen, zusätzlichen Beispielen und Übungsaufgaben.
Jetzt in der aktualisierten Version bei Amazon oder BoD bestellen!


Schnipsel

PHP und mySQL - Umfrageergebnis grafisch darstellen

Bei einer Präsentation von grafisch dargestellten Umfrageergebnissen ist es wichtig, den Zuhörern die Diagramme anschaulich darzustellen. Vor der Präsentation müssen wir unsere Grafik allerdings erst einmal erstellen. Obwohl HTML 5 dafür eine schöne Option liefert, kann auch diese Methode eingesetzt werden. Im Folgenden führen wir das anhand der Ergebnisse der Beispiel-Umfrage durch und werten 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:

Katze 40 % 40 %
Hund 30 % 30 %
Nagetier 20 % 20 %
Sonstiges 10 % 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 mySQL-Datenbank abzufragen:
<?php
$abfrage = mysqli_query($db, "SELECT count FROM haustierwunsch WHERE id = '1'");
$ergebnis = mysqli_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 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 z. B., 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 z. B. 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, z. B. 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>


Autor: Claudia Unkelbach
© 2001 - 2017 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen