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
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




to wcale nie jest sprytny skrypt...
  1. <?php
  2. $fields=array('imie', 'nazwisko');
  3.  
  4. $where=array();
  5.  
  6. // wywalamy puste "słowa"
  7. $slowa=array_filter($slowa, 'trim');
  8.  
  9. // jezeli jest za duzo słow to bierzemy tylko nasze 5
  10. if(count($slowa)>5) $slowa=array_slice($slowa, 0, 5);
  11.  
  12. foreach($slowa as $slowo)
  13. {
  14.    foreach($fields as $field)
  15.    {
  16.        $where[]=$field.' LIKE '%'.mysql_real_escape_string($slowo).'%'';
  17.    }
  18. }
  19.  
  20. $twojeWhere=implode(' OR ',$where);
  21. ?>

Czyż nie łatwiej + bezpieczniej + efektywniej

Ja rozumiem początkujący etap ale podałem ci link do implode który jest bardzo dużym ułatwieniem

Ten post edytował wookieb 18.07.2009, 22:44:03
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: 11.10.2025 - 23:47