Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka słów - problem z SELECTEM
LubieWino
post 25.10.2007, 23:02:37
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 15.10.2006

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


Mam baze forum, 2 tablice: 'pytania' i 'odpowiedzi'.
w 'pytanie' kazdy rekord ma inny, unikaly nr pytania 'nrpyt', natomiast w 'odpowiedzi' rekordy mogą miec taki sam nr pytania 'nrpyt' ktore są powiązane przez to z tablicą 'pytanie'.

To jasne.

Robie wyszukiwarke słów.

slowo (np 'korek)' jest szukane w rekordach tablicy 'pytanie' - jesli znalazlo slowo 'korek' w któryms rekordzie - zwraca mi jego nr pytania. jesli rekord w tablicy 'pytanie' nie ma slowa 'korek', wówczas w tablicy 'odpowiedzi', po tym samym numerze pytania 'nrpyt' szuka odpowiednich rekordów i sprawdza czy jest tam slowo 'korek' - jesli jest, zwraca numer pytania 'nrpyt'. i tak caly czas...

czy mozna stworzyc jakies selecta który bez problemu mi znajdzie numery pytan gdzie są te dane slowa?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
najtje
post 26.10.2007, 08:12:38
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.10.2007

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


zakładając że masz takie tabele
pytania (nrpyt int4 pk , pytanie varchar)
odpowiedzi (nrodp int4 pk, nrpyt int4 fk , odpowiedz varchar)
Najbardziej naiwne rozwiązanie jest takie:
  1. SELECT nrpyt FROM pytania AS p
  2. UNION
  3. SELECT nrpyt FROM odpowiedzi AS o
  4. WHERE p.pytanie ilike '%korek%' OR o.odpowiedz ilike '%korek%'


I to zwróci ci listę pytań w których odpowiedziach bądź treści tego pytania padło słowo 'korek'

Tutaj więcej o tym jak to powinno być tak naprawdę zaimplementowane: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Go to the top of the page
+Quote Post
LubieWino
post 27.10.2007, 17:15:15
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 15.10.2006

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


widze ze to nie taka bajeczka te szukanie... ale... patrząc na twój powyższy przykład..

mając te numery pytań.... chciałbym z tabeli 'pytania' wyselekcjonować (odpowiednio do numerów pytań) takie dane: numer pytania, temat pytania, date, oraz nick (osoby która go napisała).

poniewaz tabela 'pytania' składa się między innymi właśnie z takich kolumn : nrpyt, temat, data, nick (aczkolwiek to nie wszystkie).

Można to jakoś zgrabnie napisać w jednym SELECTcie?

Ten post edytował LubieWino 27.10.2007, 17:16:11
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: 18.07.2025 - 04:28