Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem ze sprawdzaniem warunku
TopGun
post 6.02.2007, 11:04:56
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.01.2007

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


Otoz mam ponizszy kod:
  1. <?php
  2. include ("baza.inc");
  3. echo "<FORM METHOD=GET><TABLE>
  4. <TR><TD>Rok:</TD><TD><INPUT TYPE=Text name=rok size=10 maxlength=9></TD></TR>
  5. <TR><TD>Semestr:</TD><TD><INPUT TYPE=Text name=sem size=10 maxlength=9><BR></TD></TR>
  6. <TR><TD><INPUT TYPE=SUBMIT></TD></TR></TABLE>
  7. </FORM>";
  8. if($_GET['rok']!=NULL)
  9. {
  10. echo "Zestawienie średnich ocen z roku $rok:<BR><BR>";
  11.  
  12. if(isset($_GET['sem'])!=NULL)
  13. {
  14. $sql_sred_sem = "SELECT o.id_stud, p.semestr, avg(ocena) from oceny as o, przedmioty aS p LEFT JOIN rok_akad as r on
  15. r.id_stud = o.id_stud and r.id_przed = o.id_przed where r.rok = '".$_GET['rok']."' and p.semestr = '".$_GET['sem']."'
  16. and o.id_przed = p.id group by o.id_stud order by 'avg(ocena)' DESC";
  17. $res_sred_sem = @mysql_query($sql_sred_sem, $connection) or die("Zapytanie wyswietlenia srednich semestr nieudane");
  18. $i=0;
  19. while ($row_sred_sem = mysql_fetch_array($res_sred_sem))
  20. {
  21. $color = ($i % 2) ? 'silver' : 'white';
  22. $wysw_sred_sem .="
  23. <TR style="background-color:$color">
  24. <TD style="width: 30%;"><CENTER>".$row_sred_sem['id_stud']."</CENTER></TD>
  25. <TD style="width: 30%;"><CENTER>".$row_sred_sem['semestr']."</CENTER></TD>
  26. <TD style="width: 30%;"><CENTER>".round($row_sred_sem['avg(ocena)'], 2)."</CENTER></TD>
  27. </TR>";
  28. $i++;
  29. }
  30. echo "<TABLE border=0 width=100>
  31. <TR>
  32. <TD width="30%"><b>Indeks</b></TD>
  33. <TD width="30%"><b>Semestr</b></TD>
  34. <TD width="30%"><b>Średnia</b></TD></TR>$wysw_sred_sem</TABLE><BR>";
  35. }
  36.  
  37. if($_GET['sem']==NULL)
  38. {
  39. $sql_sred = "SELECT o.id_stud, p.semestr, avg(ocena) from oceny as o, przedmioty aS p LEFT JOIN rok_akad as r on
  40. r.id_stud = o.id_stud and r.id_przed = o.id_przed where r.rok = '".$_GET['rok']."' group by o.id_stud order by 'avg(ocena)' DESC";
  41. $res_sred= @mysql_query($sql_sred, $connection) or die("Zapytanie wyswietlenia srednich nieudane");
  42. $i=0;
  43. while ($row_sred = mysql_fetch_array($res_sred))
  44. {
  45. $color = ($i % 2) ? 'silver' : 'white';
  46. $wysw_sred .="
  47. <TR style="background-color:$color">
  48. <TD style="width: 50%;"><CENTER>".$row_sred['id_stud']."</CENTER></TD>
  49. <TD style="width: 50%;"><CENTER>".round($row_sred['avg(ocena)'], 2)."</CENTER></TD>
  50. </TR>";
  51. $i++;
  52. }
  53. echo "<TABLE border=0 width=100>
  54. <TR>
  55. <TD width="50%"><b>Indeks</b></TD>
  56. <TD width="50%"><b>Średnia</b></TD></TR>$wysw_sred</TABLE><BR>";
  57. }
  58. }
  59. ?>

Sprawa jest o tyle dziwna, ze jak w pierwszym polu wpisze rocznik a w drugim nr semestru to wyswietlaja mi sie kolumny z wlasciwego warunku ale gdy drugie pole zostawie puste to wyswietla mi sie pierwsza czesc tabeli oraz reszta danych wg porownania drugiego, tak jakby to drugie pole jednak nie bylo puste i sie to wykonywalo. Gdzie popelnilem blad w warunku?


--------------------
Semper Fi
Go to the top of the page
+Quote Post
JaRoPHP
post 6.02.2007, 13:01:13
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Sprawdzając, czy pola formularza zostały wypełnione, korzystaj z funkcji: isset" title="Zobacz w manualu php" target="_manual oraz empty" title="Zobacz w manualu php" target="_manual.
Schematycznie Twój kod powinien wyglądać tak:
  1. <?php
  2. // filtracja danych
  3. ...
  4. if(isset($_GET['rok']) && !empty($_GET['rok'])) {
  5.  // ...
  6.  if(isset($_GET['sem']) && !empty($_GET['sem'])) {
  7. // ...
  8.  } else {
  9. // ...
  10.  }
  11. }
  12. ?>


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
TopGun
post 6.02.2007, 13:48:16
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.01.2007

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


Troszke mi sie wydaje namieszales w tych zmiennych ale najwazniejsze, ze poprawilem i mi dziala smile.gif Nie wiedzialem o istnieniu "empty" smile.gif Dziekuje smile.gif


--------------------
Semper Fi
Go to the top of the page
+Quote Post
albrzykowski
post 6.02.2007, 14:06:47
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

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


Hej,
mam taka mala uwage nie zwiazana do konca z Twoim pytaniem. Na poczatku kodu dolaczasz plik baza.inc Jesli jest tam podana nazwa uzytkownika bazy i hasla to ktos dociekliwy mogby podejzec Twoj plik. Moze lepiej zmienic rozszezenie na php bo wtedy dane nie wyswietla sie w przegladarce?
Pozdrawiam!


--------------------
Debian Etch, MySQL 5, PHP 5, Apache 2, Eclipse PDT
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: 31.07.2025 - 08:44