Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyjście z pętli
jacusek
post 28.11.2009, 22:42:44
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam.
Mam problem z wyjściem z zakończeniem działania pętli.
  1. <?php
  2. include('connect2.php');
  3. echo "<h1><center>Znajdź pacjenta</center></h1>\n";
  4. $blok = "
  5. <center><form method=\"GET\" form action=\"".$_SERVER["PHP_SELF"]."\">
  6. <p><strong>PESEL</strong><br/>
  7. <input type=\"text\" name=\"PESEL\" size=\"30\" maxlength=\"11\"><br\>
  8. <p><strong>Nazwisko</strong><br/>
  9. <input type=\"text\" name=\"nazwisko\" size=\"30\" maxlength=\"30\"><br\>
  10. <p><strong>Imię</strong><br/>
  11. <input type=\"text\" name=\"imie\" size=\"30\" maxlength=\"30\"></p>
  12. <p><strong>Miasto</strong><br/>
  13. <input type=\"text\" name=\"miasto\" size=\"30\" maxlength=\"30\"></p>
  14. <p><input type=\"submit\" name=\"submit\" value=\"Szukaj\"></p></center>";
  15. echo $blok;
  16. $sql = 'select id_pac, PESEL, nazwisko, imie, miasto, adres, tel, tel_kom, rok_ur from pacjenci where
  17. nazwisko =\''.$_GET['nazwisko'].'\' or miasto=\''.$_GET['miasto'].
  18. '\' or imie =\''.$_GET['imie'].'\' or PESEL=\''.$_GET['PESEL'].'\'order by nazwisko limit 3';
  19. $rez= mysqli_query($mysqli, $sql);
  20. echo "<TABLE CELLPADDING=5 BORDER=1>";
  21. echo "<TR>
  22. <TD><B>NAZWISKO</B></TD>
  23. <TD><B>IMIE</B></TD>
  24. <TD><B>PESEL</B></TD>
  25. <TD><B>MIASTO</B></TD>
  26. <TD><B>adres</B></TD>
  27. <TD><B>tel</B></TD>
  28. <TD><B>tel_kom</B></TD>
  29. <TD><B>rok_ur</B></TD>
  30. <TD><B>uaktualnij</B></TD>
  31. </TR>";
  32. while ($rekord = mysqli_fetch_array($rez, MYSQLI_ASSOC)) {
  33. $id_pac = $rekord['id_pac'];
  34. $nazwisko = $rekord['nazwisko'];
  35. $imie = $rekord['imie'];
  36. $PESEL = $rekord['PESEL'];
  37. $miasto = $rekord['miasto'];
  38. $adres = $rekord['adres'];
  39. $tel=$rekord['tel'];
  40. $tel_kom = $rekord['tel_kom'];
  41. $rok_ur = $rekord['rok_ur'];
  42. echo "<TR>";
  43. echo "<TD>$nazwisko</TD><TD>$imie</TD><TD>$PESEL</TD><TD>$miasto</TD><TD>$adres</TD><TD>$tel</TD>
  44. <TD>$tel_kom</TD><TD>$rok_ur</TD>";
  45. echo "<TD><A HREF=\"3.php?action=update&id_pac=$id_pac\">aktualizacja</A></TD>";
  46. echo "</TR>";
  47. }
  48. echo "</TABLE>";
  49. if ($_GET["action"]=='popraw') { // poprawianie rekordu
  50. $query = 'UPDATE pacjenci SET nazwisko=\''.$_GET['nazwisko'].'\', Imie=\''.$_GET['imie'].'\', miasto=\''.$_GET['miasto'].'\',
  51. tel=\''.$_GET['tel'].'\', tel_kom=\''.$_GET['tel_kom'].'\' WHERE id_pac='.(int)$_GET['id_pac'];
  52. $result=mysqli_query($mysqli,$query);
  53. mysqli_close($mysqli);
  54. echo "Gratulacje zmieniłeś rekord";
  55. }
  56.  
  57. if ($_GET["action"] == 'update') { // przygotowanie do poprawek
  58. $query1 = 'SELECT id_pac, nazwisko, imie, miasto, adres, tel, tel_kom FROM pacjenci where id_pac='.(int)$_GET['id_pac'];
  59. $result1 = mysqli_query($mysqli,$query1);
  60. $rekord = mysqli_fetch_array($result1,MYSQLI_ASSOC);
  61. $id_pac = $rekord['id_pac'];
  62. $nazwisko = $rekord['nazwisko'];
  63. $imie = $rekord['imie'];
  64. $miasto = $rekord['miasto'];
  65. $adres = $rekord['adres'];
  66. $tel=$rekord['tel'];
  67. $tel_kom = $rekord['tel_kom'];
  68. echo '<FORM METHOD="GET">Poprawa rekordu:';
  69. echo '<INPUT TYPE="hidden" NAME="action" VALUE="popraw">';
  70. echo '<INPUT TYPE="hidden" NAME="id_pac" VALUE="'.$id_pac.'">
  71. <TABLE>';
  72. echo '<TR><TD>Nazwisko:</TD><TD><INPUT TYPE="text" ';
  73. echo 'NAME="nazwisko" VALUE="'.$nazwisko.'"></TD></TR><TR><TD>Imie:';
  74. echo '</TD><TD><INPUT TYPE="text" NAME="imie" VALUE="'.$imie;
  75. echo '"></TD></TR><TR><TD>Miasto:</TD><TD><INPUT TYPE="text"';
  76. echo 'NAME="miasto" VALUE="'.$miasto.'"></TD></TR>';
  77. echo '<TR><TD>Adres:</TD><TD><INPUT TYPE="text" ';
  78. echo 'NAME="adres" VALUE="'.$adres.'"></TD></TR>';
  79. echo '<TR><TD>TEL:</TD><TD><INPUT TYPE="text" ';
  80. echo 'NAME="tel" VALUE="'.$tel.'"></TD></TR>';
  81. echo '<TR><TD>TEL_kom:</TD><TD><INPUT TYPE="text" ';
  82. echo 'NAME="tel_kom" VALUE="'.$tel_kom.'"></TD></TR>';
  83. echo '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  84. }
  85. ?>

No właśnie. Po wykonaniu całości - czyli update'u skrypt odpytuje z bazy jeszcze raz dając nową tablę wynikową z szczerze mówiąc dość dziwnymi wynikami. Jak można - po dokonaniu update'u "zmusić" plik do przejścia do części wyjściowej - czyli w tym przypadku pliku 3.php i ponownego wyszukiwania.
Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
darko
post 28.11.2009, 22:55:33
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Jak chcesz wyskoczyć z pętli to dajesz break;

Przekierowanie (headera już nie wyślesz):
echo "<script>window.location.href = '3.php';</script>"; exit;

Ten post edytował darko 28.11.2009, 22:56:27


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
jacusek
post 28.11.2009, 23:14:42
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


No właśnie troszkę mi się pokręciło gdzie tego break wstawić. Bo że tak się przerywa to wiem, a gdziekolwiek tego nie robię (przynajmniej tam gdzie wydaje się że powinienem wstawić) dostaję taki błąd:
Cannot break/continue 1 level in on line ....
Więc co dalej. Gdzie tego szukać?
Go to the top of the page
+Quote Post
darko
post 28.11.2009, 23:23:18
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wiesz co, może napisz, co chcesz zrobić, co jest celem tej rozmowy, bo może wcale nie chodzi o wyskoczenie z pętli.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
jacusek
post 29.11.2009, 09:10:38
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam. Chodzi mi o to, ze po wciśnięciu paska aktualizacja i później poprawieniu rekordu pojawiają mi się w tabelce inne nie związane rekordy. I właśnie tego ostatniego etapu chciałbym uniknąć. Chciałbym żeby po poprawieniu wracał lub wyświetlał stronę tylko z wyszukiwaniem. Szukam błędu i cały czas nie mogę go znaleźć.
Go to the top of the page
+Quote Post
darko
post 30.11.2009, 01:29:42
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Nudziło mi się, więc podaję gotowca:

  1. // TU WPISZ NAZWĘ TEGO SKRYPTU:
  2. $file = "forum24.php";
  3. //include('connect2.php');
  4. $rekord = array(
  5. "id_pac"=>"test1",
  6. "nazwisko" => "test2",
  7. "imie" => "test3",
  8. "PESEL" => "test4",
  9. "miasto" => "test5",
  10. "adres" => "test6",
  11. "tel" => "test7",
  12. "tel_kom" => "test8",
  13. "rok_ur" => "test9"
  14. );
  15.  
  16. switch($_GET["action"]) {
  17.  
  18. case "popraw":
  19. // poprawianie rekordu
  20. $query = 'UPDATE pacjenci SET nazwisko=\''.$_GET['nazwisko'].'\', Imie=\''.$_GET['imie'].'\', miasto=\''.$_GET['miasto'].'\',
  21. tel=\''.$_GET['tel'].'\', tel_kom=\''.$_GET['tel_kom'].'\' WHERE id_pac='.(int)$_GET['id_pac'];
  22. //$result=mysqli_query($mysqli,$query);
  23. //mysqli_close($mysqli);
  24. echo "<script>alert('Gratulacje zmieniles rekord');</script>";
  25. echo("<script>window.location.href = '$file';</script>");
  26.  
  27. break;
  28.  
  29. case "update":
  30. // przygotowanie do poprawek
  31. $query1 = 'SELECT id_pac, nazwisko, imie, miasto, adres, tel, tel_kom FROM pacjenci where id_pac='.(int)$_GET['id_pac'];
  32. //$result1 = mysqli_query($mysqli,$query1);
  33. //$rekord = mysqli_fetch_array($result1,MYSQLI_ASSOC);
  34. $id_pac = $rekord['id_pac'];
  35. $nazwisko = $rekord['nazwisko'];
  36. $imie = $rekord['imie'];
  37. $miasto = $rekord['miasto'];
  38. $adres = $rekord['adres'];
  39. $tel=$rekord['tel'];
  40. $tel_kom = $rekord['tel_kom'];
  41. echo '<FORM METHOD="GET">Poprawa rekordu:';
  42. echo '<INPUT TYPE="hidden" NAME="action" VALUE="popraw">';
  43. echo '<INPUT TYPE="hidden" NAME="id_pac" VALUE="'.$id_pac.'">
  44. <TABLE>';
  45. echo '<TR><TD>Nazwisko:</TD><TD><INPUT TYPE="text" ';
  46. echo 'NAME="nazwisko" VALUE="'.$nazwisko.'"></TD></TR><TR><TD>Imie:';
  47. echo '</TD><TD><INPUT TYPE="text" NAME="imie" VALUE="'.$imie;
  48. echo '"></TD></TR><TR><TD>Miasto:</TD><TD><INPUT TYPE="text"';
  49. echo 'NAME="miasto" VALUE="'.$miasto.'"></TD></TR>';
  50. echo '<TR><TD>Adres:</TD><TD><INPUT TYPE="text" ';
  51. echo 'NAME="adres" VALUE="'.$adres.'"></TD></TR>';
  52. echo '<TR><TD>TEL:</TD><TD><INPUT TYPE="text" ';
  53. echo 'NAME="tel" VALUE="'.$tel.'"></TD></TR>';
  54. echo '<TR><TD>TEL_kom:</TD><TD><INPUT TYPE="text" ';
  55. echo 'NAME="tel_kom" VALUE="'.$tel_kom.'"></TD></TR>';
  56. echo '</TABLE><INPUT TYPE="submit" VALUE="Popraw"></FORM>';
  57.  
  58. break;
  59.  
  60. default:
  61. echo "<h1><center>Znajdź pacjenta</center></h1>\n";
  62. $blok = "
  63. <center><form method=\"GET\" form action=\"".$file."\">
  64. <p><strong>PESEL</strong><br/>
  65. <input type=\"text\" name=\"PESEL\" size=\"30\" maxlength=\"11\"><br\>
  66. <p><strong>Nazwisko</strong><br/>
  67. <input type=\"text\" name=\"nazwisko\" size=\"30\" maxlength=\"30\"><br\>
  68. <p><strong>Imię</strong><br/>
  69. <input type=\"text\" name=\"imie\" size=\"30\" maxlength=\"30\"></p>
  70. <p><strong>Miasto</strong><br/>
  71. <input type=\"text\" name=\"miasto\" size=\"30\" maxlength=\"30\"></p>
  72. <p><input type=\"submit\" name=\"submit\" value=\"Szukaj\"></p></center>";
  73. echo $blok;
  74. $sql = 'select id_pac, PESEL, nazwisko, imie, miasto, adres, tel, tel_kom, rok_ur from pacjenci where
  75. nazwisko =\''.$_GET['nazwisko'].'\' or miasto=\''.$_GET['miasto'].
  76. '\' or imie =\''.$_GET['imie'].'\' or PESEL=\''.$_GET['PESEL'].'\'order by nazwisko limit 3';
  77. //$rez= mysqli_query($mysqli, $sql);
  78. echo "<TABLE CELLPADDING=5 BORDER=1>";
  79. echo "<TR>
  80. <TD><B>NAZWISKO</B></TD>
  81. <TD><B>IMIE</B></TD>
  82. <TD><B>PESEL</B></TD>
  83. <TD><B>MIASTO</B></TD>
  84. <TD><B>adres</B></TD>
  85. <TD><B>tel</B></TD>
  86. <TD><B>tel_kom</B></TD>
  87. <TD><B>rok_ur</B></TD>
  88. <TD><B>uaktualnij</B></TD>
  89. </TR>";
  90. //while ($rekord = mysqli_fetch_array($rez, MYSQLI_ASSOC)) {
  91. $id_pac = $rekord['id_pac'];
  92. $nazwisko = $rekord['nazwisko'];
  93. $imie = $rekord['imie'];
  94. $PESEL = $rekord['PESEL'];
  95. $miasto = $rekord['miasto'];
  96. $adres = $rekord['adres'];
  97. $tel=$rekord['tel'];
  98. $tel_kom = $rekord['tel_kom'];
  99. $rok_ur = $rekord['rok_ur'];
  100. echo "<TR>";
  101. echo "<TD>$nazwisko</TD><TD>$imie</TD><TD>$PESEL</TD><TD>$miasto</TD><TD>$adres</TD><TD>$tel</TD>
  102. <TD>$tel_kom</TD><TD>$rok_ur</TD>";
  103. echo "<TD><A HREF=\"$file?action=update&id_pac=$id_pac\">aktualizacja</A></TD>";
  104. echo "</TR>";
  105. //}
  106. echo "</TABLE>";
  107.  
  108. break;
  109. }


Przeczytaj ten kod, odkomentuj, co trzeba, usuń tablicę $rekord z początku pliku, ustaw faktyczną nazwę zmiennej $file i rób wcięcia w kodzie!


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
jacusek
post 30.11.2009, 19:22:04
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


WIELKIE DZIĘKI yahoo.gif . Na case nie wpadłem, ale cały czas się uczę i widzę że dłuuuuuuuuuuga droga przede mną. Dołożyłem sobie jeszcze przycisk że po wyszukaniu pacjenta przenosi mnie do formularza rezerwacji.
Prawie wszystko działa, ale nie wiedzieć czemu cały czas pojawia mi się nazwisko 1 człowieka. Nawet tylko przy wywołaniu strony. Ale to już najmniejszy problem w tym wszystkim.
Pozdrawiam
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: 27.06.2025 - 17:08