Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie
krzysiu99995
post 11.01.2013, 16:09:51
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.11.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam, zrobiłem sobie małą wyszukiwarkę:

  1. $search = my_strtolower(htmlspecialchars($mybb->input['search']));
  2.  
  3.  
  4. $query = $db->query("
  5. SELECT fid, pid, name, lastpost, lastposter, lastposteruid, lastposttid, lastpostsubject
  6. FROM ".TABLE_PREFIX."forums
  7. WHERE type='f' AND name LIKE '$search'
  8. ORDER BY name DESC
  9.  
  10. ");


Jak w bazie jest np. name = Test.

I wpisze test, to jest ok. Ale jak jest już np name = Testowy test. To czy wpiszę w wyszukiwarkę 'testowy test', 'test lub 'Testowy', nie wyszuka nic. Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
CuteOne
post 11.01.2013, 16:22:25
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


1. rozbij string na części za pomocą explode (powstanie tablica)
2. tablicę przeleć pętlą
  1. $query = array();
  2. foreach($array as $value) {
  3. $query[] = " name LIKE '%".$value."%' ";
  4. }
  5. $query = '(' . implode(' OR ', $query) . ')';

3. $query wrzuć do zapytania w odpowiednie miejsce

Ten post edytował CuteOne 11.01.2013, 16:24:10
Go to the top of the page
+Quote Post
krzysiu99995
post 11.01.2013, 16:46:56
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.11.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki wielkie, mistrzu.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 00:34