Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyniki z bazy po wypelnieniu formularza, Prosta wyszukiwarka
adameq
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 3
Dołączył: 27.03.2007

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


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 to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
--gość--
post
Post #2





Goście







a co się kryje pod zmienną $zapytanie1?

  1. <?php
  2. while ($wiersz = mysql_fetch_row($zapytanie1))
  3. ?>
Go to the top of the page
+Quote Post
Cezar708
post
Post #3





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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
Go to the top of the page
+Quote Post
adameq
post
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 3
Dołączył: 27.03.2007

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


Cezar, wieeeeelkie dzieki biggrin.gif
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 Aktualny czas: 20.08.2025 - 21:40