Avatar billede runskee Nybegynder
25. april 2004 - 09:52 Der er 19 kommentarer og
1 løsning

Hjælp til session/SQL-sætning

MUSIK.ASP: udskriver musikposter i forskellige genrer:

<%genre_valg = session("genre_valg")%>
.
.
sql="SELECT * FROM musik WHERE genre = '"&genre_valg&"'"


Siden hvor min session laves

MUSIK_GENREVALG.ASP:

session("genre_valg") = Request.form("genre_valg2")


Dertil vil jeg gerne tilføje flere genre_valg, men hvordan?:

Altså noget lignende:

session("genre_valg") = Request.form("genre_valg2") & AND & Request.form("genre_valg3")....osv
Avatar billede nmh Nybegynder
25. april 2004 - 10:24 #1
Din sql-streng skal have denne opbygning, hvis du vil have flere genrer (jeg går ud fra, at du vil søge imellem to genrer her):
genre1=...
genre2=...
sql="SELECT * FROM musik WHERE genre = '" & genre1 & "'" & " or genre='" & genre2 &"'"

Se mere her:
http://www.w3schools.com/sql/sql_and_or.asp
Avatar billede runskee Nybegynder
25. april 2004 - 11:03 #2
Ja, det var måske lidt uklart skrevet.

Der er omkring 8 genrer, som man kan vælge via checkboxe. De genrer som er afkrydsede skal vises. Derfor tænkte jeg at man kunne smide de udvalgte genrer i den session:

session("genre_valg") = Request.form("genre1") & AND & Request.form("genre2") & AND & Request.form("genre3")....osv. Men hvordan??

kan jeg stadig beholde SQL-sætningen så:

sql="SELECT * FROM musik WHERE genre = '"&genre_valg&"'"
Avatar billede nmh Nybegynder
25. april 2004 - 11:18 #3
Det giver ikke mening at sætte and imellem
Request.form("genre1") & AND & Request.form("genre2")
Er det ikke sådan, at du vil have de poster, hvor genren er en af de markerede.
Men så er det noget af form
where genre='genre1' or genre='genre2' or genre='genre3' og så videre.
genre1, genre2,... er så genrenavne, der findes i søjelen musik i databasetabellen musik.
Avatar billede runskee Nybegynder
25. april 2004 - 11:23 #4
Jeg vil gerne have at man kan se flere af de afkrydsede genrer på én gang. Eksempelvis genre1 og genre6
Avatar billede nmh Nybegynder
25. april 2004 - 11:32 #5
"at se dem på én gang"
Betyder det ikke, at du får vist alle de poster, hvor genren er enten genre1 eller genre2?
Men det er da det du vil få med

where genre='genre1' or genre='genre2'
Avatar billede runskee Nybegynder
25. april 2004 - 11:46 #6
jeg har fundet ud af det.

min session ser sådan ud:

session("genre_valg") = Request.form("Ambient") & "'" & " OR genre = " & "'" & Request.form("Dance") & "'" & " OR genre = " & "'" & Request.form("Lounge") & "'" & " OR genre = " & "'" & Request.form("Techno") & "'" & " OR genre = " & "'" & Request.form("House")

SQL-sætning ser stadig sådan ud:
sql="SELECT * FROM musik WHERE genre = '"&genre_valg&"'"
Avatar billede nmh Nybegynder
25. april 2004 - 11:54 #7
Ja. Men det var jo netop det jeg foreslog mht opbygningen af sql-sætningen.
Avatar billede runskee Nybegynder
25. april 2004 - 12:00 #8
hvis du lægger svar så får du point....
Avatar billede nmh Nybegynder
25. april 2004 - 12:01 #9
Her er et. :o)
Avatar billede runskee Nybegynder
25. april 2004 - 12:05 #10
tak for hjælpen
Avatar billede runskee Nybegynder
25. april 2004 - 12:07 #11
Jeg løb ind i et andet problem. Ved ikke om du kan hjælpe med det også for 30 p. mere??

De checkbokse som man har afkrydset skal være checked på siden musik.asp også (den med sql-sætningen) Kan man gøre dette uden en session til hver genre?
Avatar billede nmh Nybegynder
25. april 2004 - 12:17 #12
Selv tak, glad for at kunne hjælpe.
Dit nye problem:
Jeg er ikke sikker på, jeg helt forstår, hvad du mener med en session til hver genre.
Mener du en sessionsvariabel til hver genre?
Avatar billede runskee Nybegynder
25. april 2004 - 13:29 #13
Jo, det jeg mener er, at min tidligere kode kun gav mulighed for at vise alle poster inden for én genre. Navnet på genren lå derfor som den eneste i min session "genre_valg".

Derfor kunne jeg som vist her bruge en if sætning til at vise hvilken genre som var i session'en:

<option value="Ambient" <%if genre_valg="Ambient" then response.write("selected")%>>Ambient</option>




Som koden ser ud nu ligger der flere genrer i min session "genre_valg", hvordan kan jeg så vise på mine checkboxe, hvilke genrer der er valgt??



HER ER KODEN, SOM DEN SER UD NU:

<%
genre_valg = Request.form("Ambient") & "'" & " OR genre = " & "'" & Request.form("Dance") & "'" & " OR genre = " & "'" & Request.form("Lounge") & "'" & " OR genre = " & "'" & Request.form("Techno") & "'" & " OR genre = " & "'" & Request.form("House")
%>

<body>

<form name="musik" method="post" action="musik.asp">
<input name="Ambient" type="checkbox" value="Ambient">
<input type="checkbox" name="Dance" value="Dance">
<input type="checkbox" name="Techno" value="Techno">
<input name="House" type="checkbox" id="House" value="House">
<input name="Lounge" type="checkbox" id="Lounge" value="Lounge">
<input type="submit" name="Submit" value="Opdater">
</form>


'udskriv
sql="SELECT * FROM musik WHERE genre = '"&genre_valg&"'"

</body>
Avatar billede nmh Nybegynder
25. april 2004 - 13:42 #14
Jeg ser på det i løbet af dagen, men har desværre ikke tid lige nu.
Avatar billede runskee Nybegynder
25. april 2004 - 13:44 #15
ok, jeg venter spændt :-)
Avatar billede nmh Nybegynder
26. april 2004 - 21:35 #16
jeg har ikke glemt dig, men der kom noget op. Så du må være tålmodig lidt endnu.
Avatar billede nmh Nybegynder
27. april 2004 - 18:35 #17
Du er nødt til at have dine ting splittet ud på det enkelte valg også.
Den variable genre_valg er ok til at hjælpe med at få de rigtige ting hentet fra din database, når du får udført din sql-sætning.

Vil du udskrive en side hvor din form ovenfor er udfyldt med check-mærker i de relevante checkbokse?
Start med at gemme dine request-data i en række variable.
Ambient=Request.form("Ambient")
Dance=Request.form("Dance")
etc....
Nu har du hvad du skal bruge til både at opbygge din sql-sætning
Du kan alle steder i din sql-streng statte request.form(...) med den tilsvarende variable.

Og du kan nu også let skrive checkmærker der hvor du har lyst.
if Ambient="Ambient" then
  kode, som udskriver det du nu ønsker
end if

Det er altid bedst med det samme at hente værdier request.form(...)
ind i variable. Det er tungt for sytemet at skulle håndtere request.form(...) hele tiden.
Avatar billede runskee Nybegynder
27. april 2004 - 20:37 #18
Det var lige det der skulle til!... 1000 tak for hjælpen. Jeg må hellere lave nogle af mine andre sider om, hvor jeg har brugt request.form på samme måde. Når du siger det er sløvende.

Hvordan giver jeg flere point, når jeg allerede har givet dig én gang?
Avatar billede nmh Nybegynder
27. april 2004 - 20:57 #19
Selv tak, det var så lidt.

Du behøver ikke at give mig flere point.
Jeg er fuldt tilfreds. :o)
Avatar billede runskee Nybegynder
27. april 2004 - 22:59 #20
Hvis du er tilfreds, er jeg også.... :-)
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