Napisałem (przepisałem i przerobiłem) kod wyświetlający wykres przedstawiający wyniki głosowania i nie działa.
Błędy:
Warning: Wrong parameter count for mysql_data_seek() in /glosowanie.php on line 42
Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in /glosowanie.php on line 103
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /glosowanie.php on line 109
Warning: Wrong parameter count for mysql_fetch_object() in /glosowanie.php on line 121
Warning: Cannot modify header information - headers already sent by (output started at /glosowanie.php:42) in /glosowanie.php on line 164
�PNG ��� IHDR��ô���2���%ržŔ���ŰIDATx�íÔÁ @Ŕ°K÷ß9]˘j¤ üň{�äĚ{owŻ3�ř��ů\7�đ{ćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�Aćdî�AÁšĎĚuŔąŕÜ0w� s2w� s2w� s2w� s2w� ŕÜw÷:ŕXpî��;��ü�/¸î`NŢ>Ź����IENDŽB`�
Kod:
<?php
/***********************************************
Zapytanie bazy danych odczytujące wyniki ankiety
***********************************************/
// pobranie glosu z formy i łączenie z bazą
$glosow = $_REQUEST['glosow'];
if(!empty($glosow)) // jezeli formularz zostal wypelniony, dodanie glosu {
$zapytanie = "update nauczyciel set = glosow + 1 where nauczyciel = '$glosow'";
}
// pobranie aktualnych wyników anikiety, niezależnie od faktu glosowania
$zapytanie = 'select * from nauczyciel';
echo 'Połączenie z bazą nieudane';
};
//obliczanie całkowitej ilości glosów
$glosow = 0;
{
$glosow += $rzad->glosow;
}
/*****************************
Poczatkowe obliczanie wykresu
*****************************/
//ustawienia stalych
putenv('GDFONTPATH=C:WIDOWSFonts'); $szerokosc = 500; //szerokosc obrazka w pikselach - ta zmiesci sie w przdzielczkosci
$lewy_margins = 50; //miejsce pozostawione po lewej stronie obrazka
$prawy_margines = 50; // to stamo dla prawej
$wykosc_slupka = 40;
$odleglosc_slupkow = $wysokosc_slupka/2;
$czcionka = 'arial';
$rozmiar_tytulu = 16; //w stopniach
$rozmiar_podsawowy = 12; //w stopniach
$rozmiar_maly = 12; //w stopniach
$wciecie_tekstu = 10; //odleglosc lewych etykiet tekstowych od lewej krawedzi obrazka
//ustawienie poczatkowego punktu rysowania
$x = $lewy_margines+70; //miejsce rysowania bazy wykresu
$y = 50; //to samo
$jednostka_slupka = ($szerokosc-($prawy_margines))/100; //jeden "stopien" wykresu
//obliczanie wysokosci wykresu - slupki plus przerwy plus pewien margines
$wysokosc = $ilosc_kandydatow*($wyskokosc_slupka+$odleglosc_slupkow)+50;
/****************************************
Konfiguracja podstawowego obrazka
****************************************/
//stworzenie pustego kadru
$ob = imagecreateTrueColor($szerokosc, $wysokosc);
//przydzielenie kolorów
$bialy = ImageColorAllocate($ob,255,255,255);
$niebieski = ImageColorAllocate($ob,0,64,128);
$czerwony = ImageColorAllocate($ob,0,0,0);
$rozowy = ImageColorAllocate($ob,255,78,243);
$kolor_tekstu = $czarny;
$kolor_procentow = $czarny;
$kolor_tla = $bialy;
$kolor_linii = $czarny;
$kolor_slupka = $niebieski;
$kolor_liczb = $rozowy;
//stworzenie "kadru" do rysowania
ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla);
//narysowanie kontuwrów wokól kadru
ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii);
//dodanie tytulu
$tytul = 'Wyniki glosowania';
$wymiary_tytulu = ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul);
$dlugosc_tytulu = $wymiary_tytulu[2]-$wymiary_tytulu[0];
$wysokosc_tytulu = abs($wymiary_tytulu[7
]-$wymiary_tytulu[1
]); $tytul_nad_linia = abs($wymiary_tytulu[7
]); $tytul_x = ($szerokosc-$dlugosc_tytulu)/2; //wysrodkowanie w x
$tytul_y = ($y-$wysokosc_tytulu)/2+$tytul_nad_linia; //wysrodkowanie w y
ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y, $kolor_tekstu, $czcionka, $tytul);
// narysowanie bazy od nieco ponad pozycja pierwszego slupka do nieco ponizej pozy
cji ostatniego
ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_lini);
/*******************************
Umieszczanie danych na wykresrie
********************************/
// pobranie kazdej lini bazy danych i naryowanie odpowiednich slupków
{
if($glosow > 0)
else
$procent = 0;
// wyswietlanie procentów dla tej wartosci
$wymiary_procentow = ImageTTFBox($rozmiar_podstawowy, 0, $czcionka, $procent, '%');
$slugosc_procentow = $wymiary_procentow[2]-$wymairyprocentow[0];
ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu,$y+($wysokosc_slupka/2), $kolor_procentow, $czcianka, $procent, '%');
//dlugosc slupka dla tej wartosci
$dlugosc_slupka = $x+($procent*$jednostka_slupka);
//narysowanie slupka dla tej wartosci
ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka, $kolor_slupka);
//narysowanie tytulu dla tej wartosci
ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu, $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka, "$rzad->nauczyciel");
//narysowanie konturu pokazujacego 100%
ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)), $y+$wysokosc_slupka, $kolor_linii);
//wyswietlanie liczb
ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50, $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka, $rzad->glosow. '/'.$glosow);
// przesuniecie nastepnego slupka
$y = $y+($wysokosc_slupka+$odleglosc_slupkow);
}
/******************************************
Wyswitlanie obrazka!
******************************************/
Header(Content
=type
: image
/png
); ImagePNG($ob);
/******************************************
Zwalnianie zasobów
******************************************/
ImageDestroy($ob);
?>
Pozdrawiam
Ten post edytował Lejto 27.11.2007, 18:55:15