Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyszukiwarka - kilka pól tekstowych
Forum PHP.pl > Forum > Przedszkole
LukPG
Witam
Zastanawiam się w jaki sposób można rozwiązać taki problem: jest sobie na stronie wyszukiwarka, powiązana z kilkoma polami tekstowymi, których nie ma konieczności uzupełniania. W jaki sposób mógłbym wyszukiwać (określić zapytanie SELECT), tylko dla uzupełnionych pól. Każde wypełnione pole będzie zawężało poszukiwania (czyli, np. pierwsze pole to nazwisko, a drugie zawód). Wymaganym złączeniem w zapytaniu SELECT jest and, ale jeżeli, np. drugiego pola nie uzupełnię, to zapytanie: SELECT ... and zawod=$zawod (gdzie $zawod jest NULL), spowoduje, że nie zostaną wyświetlone żadne wyniki. Mam nadzieję, że nie zamieszałem za bardzo rolleyes.gif

Pozdrawiam
thek
Sprawdzać musisz czy pole formularza jest puste czy nie i doklejać do zapytania odpowiedni fragment.
  1. $sql = 'SELECT * FROM tabela WHERE ';
  2. if( !empty( $_POST['pole'] ) )
  3. $sql .= ' pole LIKE \'$'.$_POST['pole'].'%\' AND';
  4. if( !empty( $_POST['pole2'] ) )
  5. $sql .= ' pole2 LIKE \'$'.$_POST['pole2'].'%\' AND';
  6. $sql = rtrim( $sql, ' AND' );
  7. $wynik = mysql_query( $sql );
Na końcu muszę usunąć nadmiarowe ' AND' by nie wywaliło mi błędu. Poza tym pamiętaj... Musi być ustawione conajmniej 1 kryterium wyszukiwania i pola formularza musisz sprawdzić wcześniej by uniknąć wstrzyknięcia kodu do zapytania.
LukPG
Dzięki za pomoc.

Pozdrawiam
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.