Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosta wyszukiwarka a jednak problem, Problem z wyszukiwanie np: imion i nazwisk
kilinho
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.05.2008

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


Witam.

Mam sobie wyszukiwarke osob ktore zarejestrowaly sie na mojej stronie.
Tabela danych tych osob:
ID | Imie | Nazwisko | Miejscowsc | itd

I teraz problem polega na tym ze wpisujac w formularzu znajdz np. Jan Kowalski, to skrypt pyta sie w do tabelki:
select * from tabelka where nazwisko like '%Jan Kowalski%' and imie like '%Jan Kowalski%'
to zapytanie da 0 wynikow.
Jan Kowalski jest wpisywane w jednym polu.
W jaki sposob zadac pytanie badz przerobic skrypt php aby dojsc do takiej formy:
select * from tabelka where nazwisko like '%Kowalski%' and imie like '%Jan%'?
Czy tworzac indeksy w tabelce dla Imie i Nazwisko badz explod`ujac Jana Kowalskiego na dwa oddzielne wyrazy (tworzac z niego tablice i najpierw przeszukac Jan a potem Kowalski). Czy te dwie metody dadza rozwiazanie? (tablica moze byc malo wydajna przy wiekrzej ilosc slow?)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Ma. Nie powiem troche to zagmatwałeś. Mogłeś odrazu dać budowe zapytania.
  1. <?php
  2. $szukane_slowa = explode(" ", $_GET[query]);
  3. foreach($szukane_slowa AS $i => $value)
  4. {
  5.  $wheres[] = ' `last_name`=''.$value.'' AND `first_name`=''.$szukane_slowa[$i++].''';
  6. }
  7.  
  8. $sql = 'SELECT * FROM `uzytkownicy` where '.implode('OR', $wheres);
  9. ?>


EDIT: Poprawiłem. Chyba bedzie ok.

Ten post edytował bim2 29.06.2008, 12:34:24
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: 25.12.2025 - 03:41