Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]+[MySQL] Wyszukiwarka a słowa kluczowe
Forum PHP.pl > Forum > Bazy danych > MySQL
miccom
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.
kefirek
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. ?>
miccom
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.
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.