Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
NickOver
Siemka
Próbuję napisać wyszukiwarkę na stronie. Ogólnie ma ona wyszukiwać rekordy z bazy danych.
Wymyśliłem coś takiego:
  1. <?php
  2. include('head.php');
  3. include('include/db.php');
  4. echo '<form action="wy.php" method="POST">
  5. <input type="text" name="a">
  6. <input type="text" name="b">
  7. <input type="text" name="c">
  8. <input type="text" name="d">
  9. <input type="submit" name="ok" value="Szukaj">
  10. </form>';
  11. if(isset($_POST['ok']))
  12. {
  13. $a = trim($_POST['a']);
  14. $b = trim($_POST['b']);
  15. $c = trim($_POST['c']);
  16. $d = trim($_POST['d']);
  17. $e = NULL;
  18. if(!empty($a)) $e .= "AND imie = '$a'";
  19. if(!empty($a)) $e .= "AND nazwisko = '$b'";
  20. if(!empty($a)) $e .= "AND woj = '$c'";
  21. if(!empty($a)) $e .= "AND rokur = '$d'";
  22. echo $e;
  23. }
  24. ?>

Lecz po kliknieciu z wpisanymi polami nie wyswietla mi nic ( w sensie $e jest pusta).
Co zrobić aby to działało?
Chyba że ktoś ma lepszy pomysł jakby to zrobić ( w sensie nie każde pole musi byc wpisane żeby działało).
Próbowałem wcześniej coś takiego:
  1. <?php
  2. include('head.php');
  3. include('include/db.php');
  4. echo '<form action="wy.php" method="POST">
  5. <input type="text" name="a">
  6. <input type="text" name="b">
  7. <input type="text" name="c">
  8. <input type="text" name="d">
  9. <input type="submit" name="ok" value="Szukaj">
  10. </form>';
  11. if(isset($_POST['ok']))
  12. {
  13. $a = trim($_POST['a']);
  14. $b = trim($_POST['b']);
  15. $c = trim($_POST['c']);
  16. $d = trim($_POST['d']);
  17. $select = mysql_query("SELECT * FROM users WHERE imie = '$a' AND nazwisko = '$b' AND rokur = '$c' AND woj = '$d' ORDER BY id");
  18. while($e = mysql_fetch_array($select))
  19. {
  20. echo ''.$e["imie"].' '.$e['nazwisko'].'';
  21. }
  22. }
  23. ?>

Ale niestety nie działa jeśli wszystko nie jest wpisane ;(.
Z góry dzięki za pomoc.
Mega_88
Poczytaj o Like dla MySql - WHERE imie LIKE '%$a[0]%' ,czy coś w tym stylu worriedsmiley.gif
mmmmmmm
W pierwszej metodzie (poprawnej) dostajesz SQL-a takiego:
SELECT * FROM tabela WHERE AND imie='anna' AND woj='slaskie'
Widzisz co jest nie tak?
Najłatwiej wybrnąc z tego w ten sposób, że tam gdzie masz $e=NULL daj $e='1=1'. Wtedy twój SQL będzie wyglądał tak:
SELECT * FROM tabela WHERE 1=1 AND imie='anna' AND woj='slaskie'
nospor
Tu masz dokladnie opisane jak to sie robi
http://nospor.pl/wyszukiwarka-zapytanie-za...d-warunkow.html
NickOver
Cytat(mmmmmmm @ 25.04.2014, 07:30:13 ) *
W pierwszej metodzie (poprawnej) dostajesz SQL-a takiego:
SELECT * FROM tabela WHERE AND imie='anna' AND woj='slaskie'
Widzisz co jest nie tak?
Najłatwiej wybrnąc z tego w ten sposób, że tam gdzie masz $e=NULL daj $e='1=1'. Wtedy twój SQL będzie wyglądał tak:
SELECT * FROM tabela WHERE 1=1 AND imie='anna' AND woj='slaskie'


Wiem jak będzie wyglądało zapytanie. W sumie nic to nie przeszkadzało, poniewaz na początku i tak doszło by sprawdzanie statusu danego użytkownika więc zapytanie było by poprawne. W nensie chodzi mi o to '1=1' lecz problem był taki iż $e była pusta mimo wpisania danych, tj nic się nie wyswietlało.

Dzięki Nospor za link wink.gif

Cytat(mmmmmmm @ 25.04.2014, 07:30:13 ) *
W pierwszej metodzie (poprawnej) dostajesz SQL-a takiego:
SELECT * FROM tabela WHERE AND imie='anna' AND woj='slaskie'
Widzisz co jest nie tak?
Najłatwiej wybrnąc z tego w ten sposób, że tam gdzie masz $e=NULL daj $e='1=1'. Wtedy twój SQL będzie wyglądał tak:
SELECT * FROM tabela WHERE 1=1 AND imie='anna' AND woj='slaskie'


Wiem jak będzie wyglądało zapytanie. W sumie nic to nie przeszkadzało, poniewaz na początku i tak doszło by sprawdzanie statusu danego użytkownika więc zapytanie było by poprawne. W nensie chodzi mi o to '1=1' lecz problem był taki iż $e była pusta mimo wpisania danych, tj nic się nie wyswietlało.

Dzięki Nospor za link wink.gif
nospor
To juz dziala? Bo ten twoj ostatni post nic nie mowi czy dziala czy nie smile.gif
NickOver
Cytat(nospor @ 25.04.2014, 09:26:22 ) *
To juz dziala? Bo ten twoj ostatni post nic nie mowi czy dziala czy nie smile.gif

Jeszcze nie dotykałem ponieważ rano musiałem wcześniej wyjść i dopiero wróciłem. Jutro zedytuje i napiszę co nie działa 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.