Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyszukiwanie wazone, czy jakos tak
di@blo
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Chce zrobic prosta wyszukiwarke ktora by wyszukiwala z 2 pol

  1. SELECT tytul, tresc FROM tabela WHERE tytul=$zapytanie OR tresc=$zapytanie;


ale chodzi o to zeby uporzadkowal wyniki tak aby te rekordy ktore w tytule maja lowo kluczowe byly 2 razy bardziej brane pod uwage Ewentualnie jesli to mozliwe braly pod uwage ilosc wystapien slowa kluczowego

Jak by ktos rzucil przykladem bylbym wdzieczny i jak by ktos podal godnego polecenia linka do kursu opisujacego to zagadnienie to byloby super

tak przy okazji pytanie czy zwroci mi cokolwiek zapytanie z warunkiem
  1. ..... WHERE warunek1=$costam1 AND warunek2=$costam2 AND warunek3=$costam3

jesli ktoras ze zmiennych $costam bedzie pusta?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


zakładając, że mamy w tabeli klucz podstawowy id, można zbudować coś w rodzaju:
  1. SELECT *, SUM(waga) AS wynik FROM
  2. (SELECT *, 2 AS waga FROM tabela WHERE pole_1 = 'wartosc_1'
  3. UNION ALL
  4. SELECT *, 1 AS waga FROM tabela WHERE pole_2 = 'wartosc_2'
  5. ) AS tmp GROUP BY id ORDER BY wynik DESC;

ten szablon możesz sobie rozbudowywać o kolejne warunki (dodając kolejne UNION ALL SELECT ...). możesz go swobodnie dopasowywać stosując przeróżne kombinacje WHERE ...
dodatkowy bonus - jeżeli dany rekord pasuje jednocześnie do kilku warunków, to jego wynik jest sumą wag ze wszystkich warunków. czyli na twoim przykładzie - jeśli spełniony jest warunek dla tematu - wynik=2, jeżeli dla treści - wynik=1, jeżeli dla tematu i treści jednoczesnie - wynik=3 - i ten rekord znajdzie się najwyżej ...
powodzenia.
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 18:27