Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] ankieta, niby ok a nie dziala:(
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam forumowiczow. Zrobilem taka oto ankiete:
  1. <?php
  2.  
  3. //połączenie z baza danych
  4. $connect = mysql_connect("localhost", "root", "krasnal") or die ("Sprawdź połączenie z bazą danych.");
  5. mysql_select_db("sklep");
  6. if ($OCENA == '0') {
  7. $tak = "INSERT INTO ankieta (numer, glos) VALUES ('','tak')";
  8. $results1 = mysql_query($tak) or die(mysql_error());
  9. }
  10. elseif ($OCENA == '1') {
  11.  $nie = "INSERT INTO ankieta (numer, glos) VALUES ('','nie')";
  12.  $results2 = mysql_query($nie) or die(mysql_error());
  13. }
  14. $sumatak = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='tak' group by 1";
  15. $rezultattak = mysql_query($sumatak) or die(mysql_error());
  16. $sumanie = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='nie' group by 1";
  17. $rezultatnie = mysql_query($sumanie) or die(mysql_error());
  18. //obliczanie procentow
  19. $tak_p=round((100 * $rezultattak) / ($rezultattak + $rezultatnie));
  20. $nie_p=round((100 * $rezultatnie) / ($rezultattak + $rezultatnie));
  21. //deklarujemy dlugosc ekranu na 100 pikseli
  22. $ekran=100;
  23. //sprawdzanie ktorych glosow jest wiecej i przypisanie jej do zmiennej max
  24. if ($rezultattak>$rezultatnie) $max=$rezultattak;
  25. else $max=$rezultatnie;
  26. //wyznaczanie dlugosci wskaznikow z proporcji
  27. $tak_belka=round($ekran * $rezultattak / $max);
  28. $nie_belka=round($ekran * $rezultatnie / $max);
  29. //wyswietlanie paskow na ekranie
  30. echo "<table width='400' border='0' class=ct>";
  31. echo "<tr><td width=30%>Tak</td><td width=70%><img src='../grafika/ankieta.gif' width='$tak_belka' height='10'> $tak_p % </td></tr>";
  32. echo "<tr><td width=30%>Nie</td><td width=70%><img src='../grafika/ankieta.gif' width='$nie_belka' height='10'> $nie_p % </td></tr>";
  33. echo "</table>";
  34. //wyswietlenie ilosci oddanych glosow
  35. $ilosc_glosow=$rezultattak + $rezultatnie;
  36. echo '<br>'.'Łącznie oddano ' ,$ilosc_glosow,' głosów';
  37.  
  38. ?>

No i nie chce mi to dzialac. Jak na moje oko (chociaz dopiero zaczynam uczyc sie php) to jest wszystko oki. Zapytania sa dobre bo je sprawdzalem w phpMyAdminie. Glosy sa tez dobrze dodawane do bazy. A jednak zamiast wyswietlac dobre wyniki wywala mi caly czas ze oddano 7 glosow i proporcje w glosch 43% do 57%. Probuje to juz rozgryzc dluzszy czas ale jakos nic mi z teg nie wychodzi. W przegladarce czyscilem pamiec podreczna i takie tam ale to nic nie dalo. Jesli ktos widzi tu jakis blad to prosze o info. Pozdrawiam.

Ten post edytował lukash82 21.04.2006, 16:08:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukash82
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


No ok. Przeczytalem tego manuala o ktorym pisales ale jakos srednio to zrozumialem. Tzn zrobilem teraz cos takiego:
  1. <?php
  2.  
  3. $sumatak = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='tak'";
  4. $rezultat001 = mysql_query($sumatak) or die(mysql_error());
  5. $rezultattak = mysql_num_rows($rezultat001) or die(mysql_error());
  6.  
  7. $sumanie = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='nie'";
  8. $rezultat002 = mysql_query($sumanie) or die(mysql_error());
  9. $rezultatnie = mysql_num_rows($rezultat002) or die(mysql_error());
  10.  
  11. ?>

Czyli w wyniku $rezultattak powinno mi zwrocic liczbe wierszy jaka zwrocilo zapytanie jesli dobrze to zrozumialem. I niby jest dobrze bo teraz w wyniku ankiety wywala mi rowno 50% na 50% i 2 oddane glosy wiec ilosc wierszy jest 2 a wiec oki. Teraz kombinowalem jak tu wyciagnac jaka jest liczba w danym wierszu za pomoca mysql_fetch_array ale jakos nie chce mi to dzialac. Zrobilem cos takiego:
  1. <?php
  2. ,$sumatak = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='tak'";
  3. $rezultat001a = mysql_query($sumatak) or die(mysql_error());
  4. $rezultat001b = mysql_num_rows($rezultat001a) or die(mysql_error());
  5. $rezultattak = mysql_fetch_array($rezultat001b) or die(mysql_error());
  6. $sumanie = "SELECT distinct glos, count(*) as liczba FROM `ankieta` where glos='nie'";
  7. $rezultat002a = mysql_query($sumanie) or die(mysql_error());
  8. $rezultat002b = mysql_num_rows($rezultat002a) or die(mysql_error());
  9. $rezultatnie = mysql_fetch_array($rezultat002b) or die(mysql_error());
  10.  
  11. ?>

Troche mi sie tych zmiennych namnozylo i nie wiem jak to ruszyc dalej. Moze ktos moze mi podpowiedziec bo cos sie w tym chyba zamotalem:(
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 11.10.2025 - 08:20