Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]nie wykonujący się skrypt. Problem z $_GET?
Forum PHP.pl > Forum > Przedszkole
jacusek
Witam.
Mam taki skrypt:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Obsługa</title>
  6. </head>
  7. <body>
  8. <center>
  9. <form action="<?php $_SERVER['listy.php'];?>" method="GET"><?php
  10. require('connect2.php');
  11. include ('cookie.php');
  12. echo '<select name="id_lek">'
  13. ."<option value=\"\">--wybierz lekarza--</option>";
  14. $result2 = mysqli_query($mysqli,"SELECT id_lek, nazwisko_imie FROM lekarze1 ORDER BY nazwisko_imie");
  15. while ($row = mysqli_fetch_array($result2)) {
  16. $mid = intval($row['id_lek']);
  17. $lekarz = $row['nazwisko_imie'];
  18. echo"<option value=\"".$mid."\">".$lekarz."</option>";
  19. }
  20. echo"</select><br/>";
  21. echo "<br/><br/>";
  22. $sql8= "select now() as dzis";
  23. $rez8= mysqli_query($mysqli, $sql8);
  24. while ($nowaTab2=mysqli_fetch_array($rez8,MYSQLI_ASSOC))
  25. {
  26. $dzis=$nowaTab2['dzis'];
  27. $dzisiaj= date('Y-m-d', strtotime($dzis));
  28. $poczatek2=date("Y-m-d", strtotime("-1 week", strtotime($dzis)));
  29. $koniec2=date("Y-m-d", strtotime("+1 week", strtotime($dzis)));
  30. }
  31. $data=$poczatek2;
  32. echo '<select name="termin">';
  33. echo '<option value=>--wybierz datę--</option>';
  34. while ($data<=$koniec2){
  35. $data=date("Y-m-d", strtotime("+1 day", strtotime($data)));
  36. echo '<option value="'.$data.'">'.$data.'</option>';
  37. }
  38. echo "<input type=\"submit\" name=\"submit\" value=\"Wyświetl\">";
  39. $query7= "select concat('$data','%') as data'
  40. or die(mysqli_error(mysqli))";
  41. if ($res7=mysqli_query($mysqli,$query7)){
  42. while ($row=mysqli_fetch_row($res7)){
  43. $d=$row['data'];}
  44. }
  45. $query6= "select termin, concat(nazwisko,' ',imie) as pacjent, opis as badanie from wizyta
  46. inner join pacjenci using(id_pac)
  47. inner join lekarze1 using(id_lek) inner join badania using(id_bad)
  48. where termin like (''$d'') and id_lek=$mid order by termin";
  49. $rez6= mysqli_query($mysqli, $query6);
  50. echo "<TABLE CELLPADDING=5 BORDER=1>";
  51. echo "<TR>
  52. <TD><B>TERMIN</B></TD>
  53. <TD><B>PACJENT</B></TD>
  54. <TD><B>BADANIE</B></TD>
  55. </TR>";
  56. while ($rekord = mysqli_fetch_array($rez6, MYSQLI_ASSOC)) {
  57. $termin = $rekord['termin'];
  58. $pacjent = $rekord['pacjent'];
  59. $badanie = $rekord['badanie'];
  60. echo "<TD>$termin</TD><TD>$pacjent</TD><TD>$badanie</TD>";
  61. }
  62. ?></form>
  63. </center>
  64. </body>
  65. </html>


No właśnie po naciśnięciu guzika "WYświelt Listę" nie dzieje się nic poza wpisaniem danych z Geta do paska adresu przeglądarki. Pewnie mam jakiś głupi błąd. Pytanie - po podstawieniu danych, działa w bazie - więc nie wiem w przym jest problem.
Choć mam niejasne wrażenie, ze chodzi o linijkę 48. Tam powinna podstawiać się wartość like (termin to timestamp z którego chcę wyciągnąć tylko datę. W bazie działa to na na zasadzie where like ('data%') i generalnie pokazuje rekordy na ten dzień nie uwzględniając godzin. Niestety w przypadku skryptu php nie potrafię tego przeskoczyć. Proszę o jakąś pomoc. Bo mnie się już zupełnie skończyły pomysły.
Z góry dzięki.
piotr94
linijka 48 po poprawie:
#
where termin like ('".$d."') and id_lek=$mid order by termin";
jacusek
Zmieniłem tak jak mówiłeś i nadal nic mi się nie wyświetla sad.gif. Tzn żaden wyniki.
Do przeglądarki wysyła się informacja http://wirt/rez/listy.php?id_lek=1&ter...submit=Wyświetl i na tym koniec.
trochę mnie dziwi ta część dotycząca terminu. Właściwie w tabeli przechowuje to w formie daty razem z godziną, więc właściwie powinien wyszukiwać tylko według części ciągu (tzn. samej daty), a tego niestety nie robi. Myślę że tu tkwi problem z którym nie wiem jak sobie poradzić. Kombinowałem już z różnymi funkcjami na ciągach i nadal mi nie wychodzi.
Już nie wiem co robić. Utknąłem na tym sad.gif sciana.gif
Mnichasso
  1. echo '<select name="termin">';
  2. echo '<option value=>--wybierz datę--</option>';
  3. while ($data<=$koniec2){
  4. $data=date("Y-m-d", strtotime("+1 day", strtotime($data)));
  5. echo '<option value="'.$data.'">'.$data.'</option>';
  6. }
  7. echo "<input type=\"submit\" name=\"submit\" value=\"Wyświetl\">";
  8.  


a gdzie zamkniecie select questionmark.gif
jacusek
Dzięki. Oj ślepota nie boli. Dołożyłem, ale to niestety nie rozwiązało problemu. Albo pokazuje mi wszystko albo nic. Cały czas wydaje mi się że problem leży gdzieś przy tym wyszukiwaniu w terminie. Ale nie ma pomysłu jak to rozwiązać.
Na swoje usprawiedliwienie mogę tylko powiedzieć, że przygodę z PHP zacząłem 2 miesiące temu wstydnis.gif
Mnichasso
  1. 48 where termin like (''$d'') and id_lek=$mid order by termin";


a nie powinno byc zamiast $mid $id_lek a zamiast $d $termin questionmark.gif
jacusek
zmiennej $id_lek w ogóle nie mam w skrypcie. Jest tylko wartość. Już kombinowałem z $_GET['wartosc'] ale też nie szło. Poza tym jakby to był problem to nie byłoby tej informacji w adresie, który jednak do przeglądarki przechodzi...
Mnichasso
no jak to nie, w foemualrzu przeciez przesylasz ta zmienna ....
jacusek
dla zainteresowanych napisze bo dwa dni nad tym siedziałem
linijka 48 powinna wyglądać w sposób następujący:
  1. where termin like (select concat((left('".$_GET['termin']."',10)),'%')) and id_lek like ('".$_GET['id_lek']."') order by termin";

i teraz działa
yahoo.gif
Ale teraz mam jeszcze jedno pytanie - jak można spowodować, żeby odpowiedź generowała się bez pól select na górze?
Mnichasso
lol przeciez napisalem toz tymi zmiennymi ...

a jezeli chodzi o toz eby select zniklo to if i else tongue.gif
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.