Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: graficzny wynik slupkowy dla ankiety/sondy
Forum PHP.pl > Forum > PHP
DenVer89
Witam mam taki kod z algorytmy.pl:
Kod
    $w[0][] = 52;  $w[1][] = odpowiedz1;
    $w[0][] = 78;  $w[1][] = odpowiedz2;
    $w[0][] = 35;  $w[1][] = odpowiedz3;

  $szerokosc_wykresu = 180; // w pikselach
$glosow = array_sum($w[0]);
$max = max($w[0]); // najwiecej glosów
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:182px;\">";
for ($i=0;$i<count($w[0]); $i++) {
  $procent = round(($w[0][$i]/$glosow)*100);
  $szerokosc = round($szerokosc_wykresu*$w[0][$i]/$max);
  echo "<tr><td valign=\"bottom\" style=\"height:35px;\">".$w[1][$i]."<br/>Głosów: ".$w[0][$i]." [$procent%]</td></tr>
  <tr>
    <td style=\"height:12px; background-color:#EAEAEA; border:1px solid #C0C0C0;\"><div style=\"width:{$szerokosc_wykresu}px; height:10px; margin:1px 1px 1px 1px;\"><img src=\"./img/ankieta_pasek.png\" style=\"width:{$szerokosc}px;
    height:10px;\" alt=\"".$w[1][$i]."\" /></div></td>
  </tr>";
}
echo "  <tr>
    <td>Łącznie glosów: $ile_glosow</td>
  </tr></table>";
}

wynik pkazuje słupki robi tylko ma max szerokość na 180 i np. pierwsza odpowiedz ma 52 głosy to czemu tworzy grafike pierwszy słupek na 180px a nie np. na około 100%. Powinno te głosy przeliczać na % i wtedy odejmować to od 180 i tworzyć słupek, napisałem juz zapytanie do Dariusza na algorytmy ale nie dostałem odpwoiedzi więc się pytam tutaj. Moze pomozecie i ewentualnie gdzie moge znaleść coś dobrego do pokazywania wyników bo szukam na google ale znaleść niemoge.
nospor
  1. <?php
  2. $w[0][] = 52; $w[1][] = odpowiedz1;
  3. $w[0][] = 78; $w[1][] = odpowiedz2;
  4. $w[0][] = 35; $w[1][] = odpowiedz3;
  5.  
  6. $szerokosc_wykresu = 180; // w pikselach
  7. $glosow = array_sum($w[0]);
  8. $max = max($w[0]); // najwiecej glosów
  9. echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:182px;\">";
  10. for ($i=0;$i<count($w[0]); $i++) {
  11. $procent = round(($w[0][$i]/$glosow)*100);
  12. $szerokosc = round($szerokosc_wykresu*$procent/100);
  13. echo "<tr><td valign=\"bottom\" style=\"height:35px;\">".$w[1][$i]."<br/>Głosów: ".$w[0][$i]." [$procent%]</td></tr>
  14. <tr>
  15. <td style=\"height:12px; background-color:#EAEAEA; border:1px solid #C0C0C0;\"><div style=\"width:{$szerokosc_wykresu}px; height:10px; margin:1px 1px 1px 1px;\"><div style=\"width:{$szerokosc}px;
  16. height:10px;background-color:red;\" alt=\"".$w[1][$i]."\" ></div></div></td>
  17. </tr>";
  18. }
  19. echo " <tr>
  20. <td>Łącznie glosów: $ile_glosow</td>
  21. </tr></table>"; ?>


edit: pod IE troche te procenty wizualnie sie nie zgadzaja, ale nie chce mi sie teraz bawic w durne IE
DenVer89
ooo dzięki o to chodziło smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.