Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Problem z wyszukiwarką na stronie
adrianozo
post 23.01.2014, 23:05:40
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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ź

Ten post edytował adrianozo 23.01.2014, 23:26:15


--------------------
Go to the top of the page
+Quote Post
Wazniak96
post 23.01.2014, 23:11:06
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


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.
Go to the top of the page
+Quote Post
adrianozo
post 23.01.2014, 23:12:38
Post #3





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Ale czy % nie oznacza dowolny ciąg znaków? Poza tym explode nie przejdzie bo nie wiem czy ktoś czasem nie wpisze Vectra Opel


--------------------
Go to the top of the page
+Quote Post
Wazniak96
post 24.01.2014, 00:03:46
Post #4





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


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
Go to the top of the page
+Quote Post
adrianozo
post 24.01.2014, 01:17:33
Post #5





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Rozwiązane przy pomocy FULLTEXT


--------------------
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: 19.07.2025 - 18:37