Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Wyszukiwanie likiem w wielu kolumnach
Zwariowany
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


Mam w tabeli trzy kolumny. Imię, nazwisko, nick. Np. Jan, Kowalski, Kowal. I teraz moje pytanie. Jeżeli użytkownik chcę go znaleźć i wpisuje w wyszukiwarkę Jan Kowalski Kowal, to jak zrobić, żeby like dotyczyło wszystkim kolumn i dopasowywało fragment z tego kodu? bo takie coś to niestety nie działa:

SELECT * FROM `users` WHERE (`imie` LIKE 'Jan Kowalski Kowal') OR (`nazwisko` LIKE 'Jan Kowalski Kowal') OR (`nick` LIKE 'Jan Kowalski Kowal')
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zwariowany
post
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (20%)
X----


uznałem, że 5 słów to najwięcej ile może być sprawdzane ze wszystkimi polami: oto kod dla imie i nazwisko 

  1. <?php
  2. if ($ile == '1')
  3. {
  4. $poczatek.=' `imie` LIKE '%'.$eksplode[0].'%'';
  5. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[0].'%'';
  6. }
  7.  
  8. if ($ile == '2')
  9. {
  10. $poczatek.=' `imie` LIKE '%'.$eksplode[0].'%'';
  11. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[0].'%'';
  12. $poczatek.=' OR `imie` LIKE '%'.$eksplode[1].'%'';
  13. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[1].'%'';
  14. }
  15.  
  16. if ($ile == '3')
  17. {
  18. $poczatek.=' `imie` LIKE '%'.$eksplode[0].'%'';
  19. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[0].'%'';
  20. $poczatek.=' OR `imie` LIKE '%'.$eksplode[1].'%'';
  21. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[1].'%'';
  22. $poczatek.=' OR `imie` LIKE '%'.$eksplode[2].'%'';
  23. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[2].'%'';
  24. }
  25.  
  26. if ($ile == '4')
  27. {
  28. $poczatek.=' `imie` LIKE '%'.$eksplode[0].'%'';
  29. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[0].'%'';
  30. $poczatek.=' OR `imie` LIKE '%'.$eksplode[1].'%'';
  31. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[1].'%'';
  32. $poczatek.=' OR `imie` LIKE '%'.$eksplode[2].'%'';
  33. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[2].'%'';
  34. $poczatek.=' OR `imie` LIKE '%'.$eksplode[3].'%'';
  35. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[3].'%'';
  36. }
  37.  
  38. if ($ile == '5')
  39. {
  40. $poczatek.='`imie` LIKE '%'.$eksplode[0].'%'';
  41. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[0].'%'';
  42. $poczatek.=' OR `imie` LIKE '%'.$eksplode[1].'%'';
  43. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[1].'%'';
  44. $poczatek.=' OR `imie` LIKE '%'.$eksplode[2].'%'';
  45. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[2].'%'';
  46. $poczatek.=' OR `imie` LIKE '%'.$eksplode[3].'%'';
  47. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[3].'%'';
  48. $poczatek.=' OR `imie` LIKE '%'.$eksplode[4].'%'';
  49. $poczatek.=' OR `nazwisko` LIKE '%'.$eksplode[4].'%'';
  50. }
  51. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 06:39