Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem ze sprawdzaniem warunku
Forum PHP.pl > Forum > Przedszkole
TopGun
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?
JaRoPHP
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. ?>
TopGun
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
albrzykowski
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!
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.