Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [MySQL]wyszukiwarka raz jeszcze :(
nu_moon
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 26.01.2006

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


Witam wszystkich!

Przeszukalem forum ale niestety nie znalazlem nic podobnego.
Od razu moze pzrejde do pytania. Mam stronke, baze danych i w niej kilka pol. Baza sie nieco rozrosla i koniecznym stalo sie dobudowanie wyszukiwarki i tu pojawia sie problem. Pierwszym rozwiazaniem bylo wyszukanie w polach stringa wpisanego w formularzu czyli np. szukamy frazy 'Jan Kowalski' szukamy WHERE description LIKE '%$string%'.

Niby ok, z tym ze jesli osoba ta wpisana jest nie jako 'Jan Kowalski' a 'Kowalski Jan' juz nie otrzymamy wyniku.

Tu znow rozwiazaniem problemu bylo prasowanie stringa i explodowanie go w miejscach spacji i wyszukanie:

WHERE description LIKE '%$string1' AND description LIKE '%$string2'

Pojawil sie oto kolejny problem, bo co jesli szukamy frazy 'Jan Maria Rokita' ? Wystapia 3 zmienne stad pytanie

Jak (przypuszczalnie petla) stworzyc takie zapytanie ? Myslalem o stwozreniu stringa z zapytaniem SQL i w petli 'doklejac warunki AND ...LIKE - niestety jakos mi to nie wychodzi.

Moglby ktos pokazac jakis przykladowy kod takiej wyszukiwarki ? Ew. moze jest inny sposob ? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował nu_moon 24.05.2006, 14:56:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nu_moon
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 26.01.2006

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


Cytat
Sprawdzaj za pomoca preg_match, czy w zapytaniu nie ma cudzyslowow.
Jesli sa, to przerzuc fraze z cudzyslowow jako string do zapytania.


Tego akurat chyba nie do konca moge uzyc, bo wchodzi w gre x parametrow w dowolnych kolejnosciach. bo zamiast explodowac 'po spacjach' moglbym je zastapic znakiem % i szukac '%Jan%Maria%Rokita%' ale (jesli sie nie myle fraza 'Rokita Maria Jan' nie zostanie znaleziona ...

A moze zle to zrozumialem ? (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)

Ten post edytował nu_moon 24.05.2006, 14:52:06
Go to the top of the page
+Quote Post
Martin24
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 2.08.2005
Skąd: pomorskie

Ostrzeżenie: (30%)
XX---


Proponuję oddzielić imię (imiona) i nazwisko. Np. nie pole osoba: Jan Kowalski, ale imię: Jan, imie 2: Maria, nazwisko: Rokita.
Go to the top of the page
+Quote Post
nu_moon
post
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 26.01.2006

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


ok rozwiazalem temat samodzilenie - moze komus sie przyda


  1. <?php
  2. $query = 'SELECT * FROM customers WHERE '; 
  3. $bits = explode(" ", $_GET['search']);
  4.  
  5. foreach ($bits as $klucz => $wartosc)
  6. {
  7. if($klucz==0){$query = $query.'client_name LIKE '%'.$wartosc.'%' ';}
  8. else{$query = $query.'AND client_name LIKE '%'.$wartosc.'%' ';}
  9. }
  10.  
  11. $query = $query.'ORDER BY client_name';
  12. ?>


Dzieki za dobre checi i pozdrawiam.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 01:45