Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Problem z wyszukiwarką na stronie
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich smile.gif

Mam pewien problem z wyszukiwarką na swojej stronie. Albo czegoś nie rozumiem.
Na swojej stronie stworzyłem wyszukiwarkę i wyszukuje to w niżej wymieniony sposób:

  1. $co = $post['tekst'];
  2. SELECT * FROM `V_listaW` WHERE `marka` LIKE '%{$co}%' OR `model` LIKE '%{$co}%'


Mam tabele w której znajdują się między innymi kolumny marka i model

I dajmy na to w bazie mam rekord gdzie marka to Opel, a model to Vectra C

I gdy wpiszę w pole wyszukiwania Opel to dostanę wynik, tak samo jak wpiszę Vectra, ale kiedy wpiszę Opel Vectra to nie dostaje żadnego rekordu. Czego to może być wina oraz jak to naprawić, żeby po wpisaniu Opel Vectra otrzymać odpowiedni rekord z bazy?

Z góry dziękuje za odpowiedź
Wazniak96
A czy w którymś z pól masz zapisane "Opel Vestra" ? Nie. Stąd brak wyniku. smile.gif

Najprostszym rozwiązaniem jest po prostu rozbicie zmiennej $co w miejscu spacji explode i szukanie dla każdego słowa osobno.
adrianozo
Ale czy % nie oznacza dowolny ciąg znaków? Poza tym explode nie przejdzie bo nie wiem czy ktoś czasem nie wpisze Vectra Opel
Wazniak96
Oznacza dowolny w kolumnie, powiedzmy $co = "op", według twojego zapytania pasuje do danych w bazie opel, opryskiwacz, sksfdsafopasf itd. wink.gif

A co do explode to w czym problem jaka kolejność? Twoim zadaniem jest dojść do rozwiązania:
  1. SELECT * FROM `V_listaW` WHERE (`marka` LIKE '%{$co[0]}%' OR `model` LIKE '%{$co[0]}%') AND (`marka` LIKE '%{$co[1]}%' OR `model` LIKE '%{$co[1]}%')

Więc nie widzę tutaj żadnego problemu wink.gif
adrianozo
Rozwiązane przy pomocy FULLTEXT
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.