I brevet "3A5CC31C.A90E0057@hotmail.com" skrev Lauritz Jensen
(lauritz2@hotmail.com) den 10/01/01 21:16:
> Morten Borg wrote:
>>
>> Er der nogen der har en god ide til hvordan man mest optimalt laver en
>> funktion der giver nogle brugere besked når det tilføjet noget der
>> indeholder af af fx. 5 søgeord brugeren har valgt?
>> Altså noget à la dette:
http://www.computerworld.dk/newsalert.asp
>>
>> Er det smarteste at lave et array over de unikke ord folk har valgt og så se
>> om nogen af disse er i den nye besked - og i så fald laves et database
>> opslag for at finde e-mail adresserne på dem der skal have besked?
>
> Det skal jo nok ikke være et array (det ligger jo i hukommelsen), det
> skal nok være en tabel.
> Men nu kunne jo lave 3 tabeller: Word (med felterne: w_id, w_word), user
> (med felterne: u_id, u_email, u_password ...) og w_u (med felterne:
> w_id, u_id).
>
> Når du så laver en ny artikkel kunne du lave en søgning som denne:
> sql = ""
> sql = sql & "SELECT DISTINCT user.u_id, user.u_email "
> sql = sql & "FROM word "
> sql = sql & "INNER JOIN w_u ON word.w_id=w_u.w_id "
> sql = sql & "INNER JOIN user ON w_u.u_id=user.u_id "
> sql = sql & "WHERE " & dennyetekst & " LIKE '%' + word.w_word + '%' "
> Som finder alle de email adresser, som der skal sendes mail til.
Problemet er bare som jeg ser det, at hvis den tekst der bliver tilføjet
inderholder fx. 200 ord, ja så skal der laves et opslag for hvert ord og det
holder jo ikke rigtig vand. Det hurtigste er vel at lave, som nævnt, et
array (ud fra db'en) med alle de UNIKKE ord der er, og gennem en alm.
inStr() kan man så finde de ord, hvis nogen, der er i teksten og så kun for
dem lave et opslag vha. en DISTINCT og en række OR's.
Altså pseudo:
Array = Array("ord1", "ord2", "ord3") 'Unikke ord fra søgeords tabellen.
Tekst = "Dette er en ny artikler med ord2 og ord3, test test.")
Lidt inStr() og resultatet:
OrdDerFindes = Array("ord2", "ord3")
->
SELECT DISTINCT UserEmail
FROM Brugere
WHERE Soegeord.BrugerID = Brugere.ID AND
(Soegeord.Ord = '"& Ord2 &"' OR
Soegeord.Ord = '"& Ord3 &"')
Eller hvad?
Venlig hilsen
Morten