Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]+[MySQL] Wyszukiwarka a słowa kluczowe
miccom
post 11.02.2009, 17:53:18
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Witam serdecznie.
Mam problem z wyszukiwarką w bazie danych a właściwie ze słowami kluczowymi.
Moje zapytanie wygląda tak:

  1. $zapytanie = "SELECT tytul,id FROM ogloszenia WHERE tytul LIKE '%$frazy%' || tresc LIKE '%$frazy%' || kluczowe LIKE '%$frazy%' ORDER BY polecane DESC, teraz DESC";


I pięknie działa wyszukiwarka ale jeśli user poda jedno słowo kluczowe.
Chcę dać możliwość wypisanie więcej słów kluczowych- ale wyszukiwarka niestety przestaje działać.

  1. <?php
  2. $frazy     = $_POST['klucze'];//otrzymuję zestaw słów kluczowych
  3. $znakrozdzielenia=',';
  4. $klucze=explode($znakrozdzielenia, $frazy);//rozbijam string na pojedyncze słowa(frazy) kluczowe
  5. $ile = count($klucze);//ustalam ile jest słów kluczowych
  6. ?>


I tu mój problem.
Jak zmienić zapytanie do bazy, aby wyszukiwać kolejno rekordy wg wszystkich otrzymanych fraz/słów kluczowych?
Proszę o pomoc czy jest to w ogóle mozliwe.
Pozdrawiam. miccom.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
kefirek
post 11.02.2009, 18:27:10
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Spróbuj coś w ten desen
  1. <?php
  2. $frazy = $_POST['klucze'];
  3. $znakrozdzielenia=',';
  4. $klucze=explode($znakrozdzielenia, $frazy);
  5.  
  6. foreach($klucze AS $wynik){
  7. $slowa .= "tytul LIKE '%$wynik%' || tresc LIKE '%$wynik%' || kluczowe LIKE '%$wynik%'";
  8. }
  9.  
  10. $zapytanie = "SELECT tytul,id FROM ogloszenia WHERE $slowa ORDER BY polecane DESC, teraz DESC";
  11. ?>
Go to the top of the page
+Quote Post
miccom
post 11.02.2009, 18:50:19
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Witam i od razu dziękuję za podpowiedź.
Skorzystałem z wyszukiwania pełnotekstowego
Co prawda dopiero pokumałem na stronie strona o wyszukiwaniu pełnotekstowym
ale bardzo pomogło i finalnie zapytanie jest takie:

  1. $zapytanie = "SELECT tytul, id FROM ogloszenia WHERE match(tytul,tresc,kluczowe) against('$frazy' IN BOOLEAN MODE) ORDER BY polecane DESC, teraz DESC ";


Jeszce raz dziękuję za podpowiedź,
Pozdrawiam. miccom.

Ten post edytował miccom 11.02.2009, 19:23:08


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
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: 23.05.2025 - 18:15