21. januar 2005 - 09:12Der er
16 kommentarer og 1 løsning
Visning af kolonne af samme værdi
Hvorledes kan jeg lave nedenstående linie om til at den kun skal vise de poster som har den samme værdi i kolonne "forbogstav"? Fx hvis kolonnen har 2 poster med værdien A, skal den kun vise disse to og ikke andre poster med fx værdien B.
Sådan som scriptet er herunder, viser den alle poster i kolonnen "forbogstav", uanset hvilken værdier de har. Dvs. både de poster med værdien A, B, C osv.
strSQL = "SELECT * FROM ordbog WHERE forbogstav = forbogstav"
Ud fra hvad du skriver, vil jeg tro at du har et felt som heder forbogstav, og kun indeholder første bogstav i et ord. Eller, hvis du kun f.eks. har et felt der heder 'Tekst' kan du søge frem alle med en bestemt forbogstav på føgende måde:
Dim sForbogstav sForbogstav = 'A' strSQL = "SELECT * FROM ordbog WHERE Left(Tekst,1) = '" & sForbogstav & "'"
lorentsnv, hvordan indføres resten af bogstaverne så i scriptet? Det går ikke at jeg skal lave en side til hvert bogstav i alfabetet nemlig. Kan du lave et eksempel med fx bogstaverne A & B, for så ville jeg blive rigtig glad.
Du kan gøre det på linket: <a herf="ordbog.asp?show=A">A</a> <a herf="ordbog.asp?show=B">B</a>
i koden: show = request.querystring("show") if trim(show) = "" then show = "A" '<-- Default A set rs = conn.execute("select * from ordbog WHERE forbogstav = '" & show & "'")
I den post der bliver vist, har jeg en kolonne der hedder forbogstav. Lad os sige at der står "A" i denne. Kunne man ikke indlæse denne værdi fra kolonnen via rs("forbogstav") og derfra vise andre poster som har samme værdi i denne kolonne?
Det kan man godt. Du skal bare have et recordset til:
set rs = conn.execute("select ....") '<-- Din normale select if not rs.eof then set rs2 = conn.execute("select * from ordbog WHERE forbogstav = '" & rs("forbogstav") & "'") ... ... end if
Så fik jeg afprøvet det, men jeg er meget usikker på hvordan det skal opsættes. Kan du prøve at rette nedenstående script for mig, så det kommer til at passe med dit forslag?
<% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/ordbog.mdb") Conn.Open DSN sql = "SELECT * FROM ordbog WHERE forbogstav = forbogstav" Set rs = Conn.Execute(strSQL) Do While Not rs.EOF Response.write "<a href='beskrivelse.asp?id=" & rs("ID") & "'>" Response.write rs("overskrift") Response.write "</a>" rs.MoveNext Loop Conn.Close Set Conn = Nothing %>
Jeg kigger fortsat lidt med, men er lidt usikker på hvad du vil lave. Med mindre fennec har det klart for sig, skulle du måske forsøge at give en lidt mere udfyldende beskrivels af hvad du vil lave.
Vil du vise alle bogstaver, med tilhørende ord fra ordbogen samlet, men grupperet på bogstav?
Nej, jeg vil kun vise de bogstaver, som det pågældende emne omhandler. Jeg giver et eksempel:
Jeg har en ordbog. Øverst i toppen har jeg alfabetet. Jeg klikker på A, og derefter fremkommer en boks i venstre side via request.querystring("forbogstav") med alle ord der starter med A. Så langt så godt. Jeg vil gerne læse lidt om fx ADSL, så det klikker jeg på. Jeg føres videre via request.querystring("ID"), og ude i venstre side vil jeg gerne beholde alle de andre ord som stater med A. Men dette sker ikke da jeg ikke længere kan anvende querystring, da den anvendes til ID for at fremkalde det pågældende emne (i dette tilfælde ADSL).
>>fennec Lad os dele poengene her. Du har i lige stor grad været med til løsningen. Jeg har oprættet http://www.eksperten.dk/spm/583779. Smid et svar her, og du får 100 points.
Synes godt om
Ny brugerNybegynder
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.