Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyniki z bazy po wypelnieniu formularza
Forum PHP.pl > Forum > Przedszkole
adameq
Mam taki oto skrypcik:

  1. <?php
  2. if (isset($_POST['ok']))
  3. {
  4. if (isset($_POST['imie']))
  5. { 
  6. $imie=$_POST['imie'];
  7. $wynik1= "select * from uzytkownicy where imie like '%$imie%'";
  8. }
  9. if (isset($_POST['nazwisko']))
  10. { 
  11. $nazwisko=$_POST['nazwisko'];
  12. $wynik1= "select * from uzytkownicy where nazwisko like '%$nazwisko%'";
  13. }
  14.  
  15. while ($wiersz = mysql_fetch_row($zapytanie1))
  16.  {
  17. echo '<table cellpadding="0" cellspacing="0" border="0" style="font-size: 75%;">'."\n";
  18. echo '<tr >'."\n";
  19. echo '<td width="30px" align="left">'.$wiersz[0].'</td>'."\n";
  20. echo '<td width="100px" align="left">'.$wiersz[1].'</td>'."\n";
  21.  }
  22. }
  23. else
  24. {
  25. echo 'Brak osób spełniających dane kryteria';
  26. }
  27. ?>


  1. <table width="300" border="0">
  2. <form method="POST" action="?id=lista_uzytkownikow">
  3. <tr>
  4. <td>Imię: </td>
  5. <td><input name="imie" type="text"></td>
  6. </tr>
  7. <tr>
  8. <td>Nazwisko: </td>
  9. <td><input name="nazwisko" type="text"></td>
  10. </tr>
  11. <tr>
  12. <td><input type="submit" value="Wyślij" name="ok"/></td>
  13. <td align="right"><input type="reset" value="Wyczyść" /></td>
  14. </tr>
  15. </form>


Ma ktos pojecie, dlaczego jak wypelnie jedno z pol formularza wywala mi wszystkie wyniki?
-gość-
a co się kryje pod zmienną $zapytanie1?

  1. <?php
  2. while ($wiersz = mysql_fetch_row($zapytanie1))
  3. ?>
Cezar708
Cytat(adameq @ 20.01.2008, 18:01:58 ) *
Ma ktos pojecie, dlaczego jak wypelnie jedno z pol formularza wywala mi wszystkie wyniki?

Czy mam rozumieć, że "wywala" oznacza, że skrypt wyświetla wszystkie wyniki?

Po Twoim kodzie wnioskuję, że chcesz zrobić coś na wzór wyszukiwarki, ale strasznie źle tworzysz zapytania.

W liniach 4-13 sprawdzasz czy istnieje jakieś kryterium w poście, Tworzysz zapytanie które zapisujesz do zmiennej $wynik1. A następnie pobierasz jakieś dane z wyniku zapytania które znajduje się w zmiennej $zapytanie1.

Myślę, że dobrym rozwiązaniem byłaby mała modyfikacja kodu taka jak:

  1. <?php
  2. if (isset($_POST['ok']))
  3. {
  4. $zapytanie = "select * from uzytkownicy where 1=1"; // dodane
  5. if (isset($_POST['imie']))
  6. { 
  7. $imie=$_POST['imie'];
  8. $zapytanie .= " and imie like '%$imie%'"; // zmiana
  9. }
  10. if (isset($_POST['nazwisko']))
  11. { 
  12. $nazwisko=$_POST['nazwisko'];
  13. $zapytanie .= " and nazwisko like '%$nazwisko%'"; // zmiana
  14. }
  15.  
  16. $wynik = mysql_query($zapytanie); // dodane
  17.  
  18. while ($wiersz = mysql_fetch_row($wynik)) // zmiana
  19.  {
  20. echo '<table cellpadding="0" cellspacing="0" border="0" style="font-size: 75%;">'."\n";
  21. echo '<tr >'."\n";
  22. echo '<td width="30px" align="left">'.$wiersz[0].'</td>'."\n";
  23. echo '<td width="100px" align="left">'.$wiersz[1].'</td>'."\n";
  24.  }
  25. }
  26. else
  27. {
  28. echo 'Brak osób spełniających dane kryteria';
  29. }
  30. ?>


to wyświetli Ci odpowiednią listę osób.

Pozdrawiam
adameq
Cezar, wieeeeelkie dzieki biggrin.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.