Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problemy z wyszukiwarką
Forum PHP.pl > Forum > Przedszkole
dark_root
To jest część mojego kodu odpowiadająca za wydobywanie z bazy odpowiednich danych
Kod
$zapytanie = "SELECT * FROM dane WHERE imie LIKE '$a' && nazwisko LIKE '$b'";
$idzapytania = mysql_query($zapytanie);

Gdy zmienna a i b mają jakieś wartości to wszystko ładnie działa i wyskakują wszyscy z bazy o danym imieniu i nazwisku. Jednak gdy chce wydobyć z bazy wszystkie wpisy, gdzie imię wynosi Andrzej i pole nazwisko pozostawiam puste nic się nie pojawia, ponieważ w bazie nie ma nikogo spełniającego odpowiednie kryteria. Jak zrobić, że gdy jedno z pól jest puste to żeby nie brać go pod uwagę?
phpion
Sprawdzaj czy pola są wypełnione i dynamicznie buduj zapytanie. Chodzi mniej więcej o to:
1. Zapytanie początkowe to 'SELECT * FROM dane
2. Jeżeli wpisano imię to dopisz do zapytania warunek dla imienia.
3. Jeżeli wpisano nazwisko to dopisz do zapytania warunek dla nazwiska.
4. Wykonaj zapytanie.
piaseq
Możesz sprawdzać w php czy zmienna $a i $b są ustawione i sklejać odpowiedni string z zapytaniem.
Spyder
  1. <?php
  2. if ( $a != "" ) { $search = "LIKE '".$a."' "; }
  3. if ( $b != "" ) { $search = "LIKE '".$b."' "; }
  4. if ( $a != "" && $b != "" ) { $search = "LIKE '".$a."' && nazwisko LIKE '".$b."'"; }
  5.  
  6. $zapytanie = "SELECT * FROM dane WHERE imie $search";
  7. $idzapytania = mysql_query($zapytanie);
  8. ?>


Pisane z glowy, powinno dzialac ale sprawdz.
matixrr
Napisałem juzto raz ale usunąłem bo nie byłem pewien ale sprawdziłem i jednak to powinno działać:

  1. $zapytanie = "SELECT * FROM dane WHERE imie LIKE '$a' || nazwisko LIKE '$b'";


Wcześniej miałeś operator && co powodowało że musi byc podane i $a i $b a tak musi być tylko jedno z nich.
dark_root
Dzięki Spyder, twój kod działa. Daje Ci "pomógł". Matixrr, twój kod nie odpowiada mi, gdyż dając zamiast and or wypisze mi z bazy np. wszystkich Andrzejów niezależnie od tego jakie nazwisko wpiszę.
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.