Aus gesundheitlichen Gründen kann ich diese Seite nicht weiterpflegen, aktualisieren oder euch Support für eure PHP-Probleme anbieten. PHP für dich bleibt aber in seiner aktuellen Form erhalten und funktioniert nach wie vor als Einstieg in die PHP-Welt - gerade, wenn dich technischere Anleitungen bisher immer davon abgehalten haben.
Mehr dazu...

Schnipsel

PHP und mySQL - Umfrageergebnis grafisch darstellen

Bei einer Präsentation von 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.

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


Spenden via PayPal
© 2001 - 2024 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen