Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Zapytanie spełniające rożną ilosc warunków
Forum PHP.pl > Forum > Przedszkole
maffish
Witam,

Mam tabele użytkownikow z polami imie, nazwisko, email. Nie potrafię sobie poradzić z wyszukiwaniem w oparciu o rożna ilość pól.
W formularzu mam miejsce na kazde z nich, ale dajmy na to, że wpisane zostanie tylko imie i ma wyswietlic userow z tym imieniem, innym razem wpisze imie i nazwisko itd. Czy da się to zrobic pojedynczym zapytaniem?

Mam takie cos
  1. SELECT imie, nazwisko, email FROM uzytkownicy WHERE imie = '$firstname' OR nazwisko = '$surname'


Gdy wpisze imie i nazwisko - działa, ale gdy wpisze tylko jedno pole, nie wyświetla nic sad.gif Jak to rozgryźć?
Czy trzeba jakąc defaultowa wartość przypisac dla pozostawionego pustego pola?
athei
  1. $imie = $_POST['imie'];
  2. $nazwisko = $_POST['nazwisko']
  3. $sql = "SELECT imie, nazwisko, email FROM uzytkownicy WHERE 1 ";
  4. if (isset($imie)) {
  5. $sql .= " AND imie = {$imie} ";
  6. }
  7. if (isset($nazwisko)) {
  8. $sql .= " AND nazwisko = {$nazwisko}";
  9. }

itd
maffish
Zrobilem tak, gdy pola zostają puste - działa. Ale gdy wpisze cos, mam "Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given (...)".

  1. $firstname = $_POST['firstname'];
  2. $surname = $_POST['surname'];
  3.  
  4. $sql = "SELECT id, imie, nazwisko, email, typ FROM uzytkownicy u JOIN SL_typ sltyp ON u.idTypu = sltyp.idTypu
  5. WHERE 1 ";
  6.  
  7. //isset($firstname)
  8. if(isset($_POST['firstname'])) {
  9. $sql .= "AND u.imie = {$firstname} ";
  10. }
  11.  
  12. if(isset($surname)) {
  13. $sql .= "AND u.nazwisko = {$surname}";
  14. }
  15.  
  16. $result = mysql_query($sql);
  17. if(mysql_num_rows($result) > 0) {
  18. //operacje
  19. }


Czytałem, ze moze to byc wina niepoprawnego zapytania, ale niewidze gdzie tu może być błąd worriedsmiley.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.