Avatar billede agora_live Nybegynder
23. august 2004 - 09:42 Der er 10 kommentarer og
1 løsning

WHERE navn INCLUDES (hvis muligt)

Jeg skal lave et "besked system" hvor man kan sende ens meddelelser til flere brugere, dette laver jeg via et en select box som dette:

<select name="test" cols=5 multiple size="4">
<option value="1">nr.1</option>
<option value="2">nr.2</option>
<option value="3">nr.3</option>
<option value="alle">Alle</option>

</select>

Jeg henter så informationer i ASP således:

<%
if request.form("ok") <> "" then
    response.write request.form("test")
end if
%>

Dette giver et resultat som dette eksempelvis:

1, 3

Dette indsætter jeg i en database, men hvordan kan jeg lave en SELECT sætning der checker om 1 og kun 1 har lov til at se beskeden?

SQL = SELECT * FROM post WHERE navn INCLUDES 1 OR ALLE

Ved login bliver man smidt i en session med sit navn, og derefter leder man efter beskeder med sit session navn eller beskeder til ALLE????
Avatar billede locturian Nybegynder
23. august 2004 - 09:47 #1
Forstår ikke helt hvad du mener, men du kan evt. sige SQL = "SELECT * FROM post WHERE [felt] = 1 OR [felt] = 'alle'"

Du bliver nød til at skære det lidt mere ud i pap :)
Avatar billede eagleeye Praktikant
23. august 2004 - 09:47 #2
Du kan bruge inStr eks til access:

sql = "select * from post where instr(1,',"&session("id")&",',','+replace(navn,' ','')+',')>0 or navn='alle'"
Avatar billede agora_live Nybegynder
23. august 2004 - 10:20 #3
Eagleeye ->

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Undefined function 'replace' in expression.
/familiepostfunktionminebeskeder.asp, line 43

min helt eksakte linje er:

sql = "select * from postfunktion where instr(1,',"&session("navn")&",',','+replace(navn,' ','')+',')>0 or navn='alle'"

Jeg har ændret Session("id") til session("navn") da dette er navnet på min session???
Avatar billede agora_live Nybegynder
23. august 2004 - 10:28 #4
Locturian ->

Problemet med din sætning er at den ikke finder nr.1 hvis feltet i access hedder nr. 1, Alle

Så finder den kun Alle.
Avatar billede eagleeye Praktikant
23. august 2004 - 21:22 #5
hvad indeholder session("navn") ?
Avatar billede eagleeye Praktikant
23. august 2004 - 21:23 #6
Har du gemt disse:  1, 3  med mellemrum imellem eller uden 1,3 ?
Avatar billede agora_live Nybegynder
23. august 2004 - 23:19 #7
Session("navn") indeholder eksempelvis Peter, Johannes, Martha eller Alle

1, 3 dette er bare et eksempel som jeg har fundet her på eksperten, og deres value er "1", "2", "3", "alle" uden mellemrum. Scriptet laver selv et "," hvis der er multiple selections når jeg kører et response.write på Request.Form("test").

Du er klar over hvad det helt præcist er jeg leder efter ikke?
Avatar billede eagleeye Praktikant
23. august 2004 - 23:30 #8
Ja måske, jeg har forstået det sådan her:
Du har gemt alle modtagerne i et felt i posten. Det felt indeholder enten "alle" eller en komma liste med modtagere.
Og nu kan jeg forstå du gemmer folk ID og ikke deres navn. Så for at hente deres bruges kan man bruge deres ID og ikke navn i SQL sætningen.

Når man har det som  "3,51,54" og så logger bruger 1 ind, når man så tjekker på om "1," findes i strengen finden den post til bruger 51 som post til bruger 1. Så derfor ville jeg i SQL sætningen sætte , omkring ",3,51,54," når man så søger efter ",1," vil den kun finde det hvis 1 virkelig er i stengen. Så bliver i stil med dette dog stadig skal det være ID'et som bruges.

sql = "select * from post where instr(1,',"&session("id")&",',','+navn+',')>0 or navn='alle'"
Avatar billede agora_live Nybegynder
25. august 2004 - 13:18 #9
Det virkede.... Dog skal session("id") ændres til session("navn"), det er ikke tal som står i databasen, men navne.

Sætningen som jeg bruger nu er:

sql = "select * from postfunktion where instr(1,',"&session("navn")&",',','+navn+',')>0 or navn='alle' ORDER BY ID desc"

Jeg takker smider du lige et svar igen :-)

Tak for hjælpen
Avatar billede agora_live Nybegynder
25. august 2004 - 13:22 #10
Glem hvad jeg lige har skrevet :-(

Det virker ikke jeg checkede med forkert brugernavn i login.....

Når jeg bruger "ID" henter den stadig kun beskeder som er sendt til én person eller alle, den henter ikke hvis det er sendt til Mads, Alle.
Avatar billede agora_live Nybegynder
25. august 2004 - 17:26 #11
Det er lige meget.....

Jeg har valgt at splitte beskederne og ligge dem i db'en flere gange ved flere modtagere, så derfor har jeg droppet den oprindelige løsning.

Men tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester