Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> graficzny wynik slupkowy dla ankiety/sondy
DenVer89
post 20.09.2007, 09:58:51
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 13.07.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post 20.09.2007, 10:07:46
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DenVer89
post 20.09.2007, 11:32:10
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 13.07.2007

Ostrzeżenie: (0%)
-----


ooo dzięki o to chodziło smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 20:50