PHP Berechnen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP Berechnen

    Hallo zusammen,

    Ich möchte gerne meine eigene Statistik erstellen (mit Balkendiagramm)

    Ausgangspunkt:

    Ich habe 4 Antworten zur Auswahl

    Antwort 1 wurde 3 mal gewählt.
    Antwort 2 wurde 8 mal gewählt.
    Antwort 3 wurde 8 mal gewählt.
    Antwort 4 wurde 1 mal gewählt.

    Nun möchte ich also vier Balken anzeigen die Prozentual darstellen welche Antwort wie oft gewählt wurde.

    Hier mein bisheriger Code:

    Quellcode

    1. $questsum = array("3","8","8","1");
    2. $quest_counter = count($questsum);
    3. for($count = 0; $count < $quest_counter; $count++)
    4. {
    5. $test = $questsum[$count]/100;
    6. $var= round ($test,2);
    7. echo $var."<br>";
    8. echo "<img src=\"images/balken-li.gif\" width=\"6\" height=\"20\" border=\"0\"><img src=\"images/balken.gif\" width=\"$var\" height=\"20\" border=\"0\"><img src=\"images/balken-re.gif\" width=\"6\" height=\"20\" border=\"0\"><p>";
    9. }


    Was mir fehlt ist die Berechnung um festzustellen wieviel das Ergebnis aus $var für die 100% aus allen 4 Antworten ist.

    Danke vorab fürs drüberschaun!

    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von RealFairPlayer ()

  • Da du keine Skala festgelegt hast, entspricht der höchste Wert im Array 100% in deiner Rechnung:

    Quellcode

    1. $quests = array(3, 8, 8, 1);
    2. $maxQuest = max($quests);
    3. foreach ($quests as $quest) {
    4. $questValue = round(($quest/$maxQuest)*100); // [+ Faktor]
    5. echo $questValue.'<br />';
    6. echo '<img src="images/balken-li.gif" width="6" height="20" border="0">
    7. <img src="images/balken.gif" width="'.$questValue.'" height="20" border="0">
    8. <img src="images/balken-re.gif" width="6" height="20" border="0">';
    9. }
    Alles anzeigen


    Das prozentuale Ergebnis der jeweiligen Werte kannst du noch je nach Länge des Balkens mit einem Faktor proportional vergrößern.
    MfG dynambee
  • Hi!

    Danke für deine Antwort, ich habe es nun folgendermaßen für mich gelöst:

    Quellcode

    1. $questsum = array("11","18","6","8","55");
    2. $quest_counter = count($questsum);
    3. $allvotes = $questsum[0]+$questsum[1]+$questsum[2]+$questsum[3]+$questsum[4];
    4. for($count = 0; $count < $quest_counter; $count++)
    5. {
    6. if($questsum[$count])
    7. {
    8. if($allvotes != 0)
    9. {
    10. $Prozent = $questsum[$count]/$allvotes*100;
    11. }
    12. else
    13. {
    14. $Prozent = 0;
    15. }
    16. $Prozent = round($Prozent,2);
    17. echo $Prozent."<br>";
    18. echo "<img src=\"images/balken-li.gif\" width=\"6\" height=\"20\" border=\"0\"><img src=\"images/balken.gif\" width=\"$Prozent\" height=\"20\" border=\"0\"><img src=\"images/balken-re.gif\" width=\"6\" height=\"20\" border=\"0\"><p>";
    19. }
    20. }
    Alles anzeigen


    Funktioniert einwandfrei, nur teilweise gibt es Probleme zwecks aufrunden, dann kommen bei gewissen Kombinationen nur 99 Prozent raus ... naja, des krieg ich auch noch hin :)

    Merci trotzdem!

    Grüße,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Meine Version berechnet den prozentualen Anteil der jeweiligen Werte innerhalb der Wertemenge. Deine Version berechnet dagegen den prozentualen Anteil der jeweiligen Werte im Bezug auf die Gesamtsumme. Hab ich deine Logik also etwas verfehlt. ;)

    Übrigends kann man Array-Werte flexibel mit der Funktion array_sum ( array $array ) addieren.

    Gib mal ein Beispiel für die fehlerhafte Aufrundung.
    MfG dynambee
  • Als ich das erste mal was mit Diagrammen gemacht hab, hab ich folgendes Tutorial durchgearbeitet

    webmaster-resource.de/tutorial…ynamisch-erstellen-01.php

    hat mir sehr geholfen, kann ich dir weiterempfehlen...

    Falls du es tatsächlich mal versucht, geb ich dir nen tip. Lager das diagramm in einem eigenen script aus und binde es dann via <img src="deinscript.php"> ein sonst bekommst du nen header already.. fehler..

    grüße
    ----[Blockierte Grafik: http://www.smilie-harvester.de/smilies/Alltag/putzen.gif] Nein ich bin nicht die Signatur, ich Putz hier nur ---