/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Vise bestemte titler fra kolonne og ikke a~
Fra : Thomas K


Dato : 19-01-05 20:56

Jeg har nedenstående side/script, som man bliver henvist til via
Request.Querystring("ID"). På denne side vil jeg gerne have vist
alle titler som har det samme bogstav i en kolonne som hedder
forbogstav. Men sådan som det er nu, viser den alle titler som
findes i kolonnen forbogstav. Hvordan retter jeg dette problem?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/ordbog.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM ordbog WHERE forbogstav = forbogstav"
Set rs = Conn.Execute(strSQL)
Do
Response.write "<a href='beskrivelse.asp?ID=" & rs("ID") & "'>"
Response.write rs("overskrift")
Response.write "</a>"
rs.MoveNext
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
%>

NB. Jeg kan forestille mig noget med at jeg skal have fat i
rs("forbogstav"), men kan ikke finde ud af hvorledes linien skal
se ud?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (19-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-01-05 22:54

Thomas K skrev:

> strSQL = "SELECT * FROM ordbog WHERE forbogstav = forbogstav"

Her beder du om at hente alle poster hvor feltet forbogstav er det samme
som feltet forbogstav - altså samtlige poster.

Hvis forbogstavet ligger i querystring-parameteren id, kan du gøre som
følger:

Dim id
id = Request.Querystring("id")
strSQL = "SELECT * FROM ordbog WHERE forbogstav = '" & id & "'"

Se også det nederste eksempel på siden her:
<http://html.dk/tutorials/asp/lektion19.asp> (hvor feltet id dog er
numerisk, hvilket betyder at der ikke skal anvendes anførselstegn).

NB: Du bruger en uheldig løkkestruktur:

   Do
   ...
   Loop While Not rs.EOF

Hvis dit postsæt er tomt, vil det resultere i en asp-fejl, fordi løkken
altid køres mindst én gang. Skriv hellere kriteriet først:

   Do While Not rs.EOF
   ...
   Loop

- så kommer man slet ikke ind i løkken hvis postsættet er tomt.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Thomas K (19-01-2005)
Kommentar
Fra : Thomas K


Dato : 19-01-05 23:25

Jeg forstår ikke helt hvad du mener med denne linie:

> Hvis forbogstavet ligger i querystring-parameteren id

Giver lige mere info:
Jeg kommer ind på siden via Response.write "<a href='beskrivelse.asp?ID=" &
rs("ID") & "'>"....På denne side kan man se en beskrivelse/tråd af noget,
hvor jeg har tilføjet bogstavet A i en tilhørende kolonne der hedder
forbogstav. Det har jeg gjort fordi at jeg gerne i venstre side vil have en
oversigt over andre beskrivelser/tråde som har noget med emnet at gøre.
Dvs. at tråde i venstre side også har samme forbogstav, for ligesom at kæde
de tilhørende ting sammen. (venstre side er tilføjet med <!--#include
file="beskrivelsevenstre.asp"--> som indeholder scriptet vi taler om)

Ved ikke om der er en nemmere måde at kæde tråde sammen på?

Men følgende kode virker ikke helt:
> Dim id
> id = Request.Querystring("id")
> strSQL = "SELECT * FROM ordbog WHERE forbogstav = '" & id & "'"

Den giver mig følgende fejl:
Fejltype:
(0x80020009)
Undtagelse opstod.
/beskrivelsevenstre.asp, line 16

Linie 16 er:
Response.write "<a href='beskrivelse.asp?ID=" & rs("ID") & "'>"

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (19-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-01-05 23:45

Thomas K skrev:

[citatrækkefølge ændret (kommentar efter spørgsmål)]

>> Hvis forbogstavet ligger i querystring-parameteren id

> Jeg forstår ikke helt hvad du mener med denne linie

Lad mig spørge på en anden måde: Hvad indeholder rs("id") - eller
omvendt hvad indeholder request.querystring("id") ?

Har du evt. et link til din side?

> På denne side kan man se en beskrivelse/tråd af noget,
> hvor jeg har tilføjet bogstavet A i en tilhørende kolonne der hedder
> forbogstav.

Er "kolonne" her en kolonne i en html-tabel?
Har du tilføjet "A" som forbogstav til samtlige poster?


> Ved ikke om der er en nemmere måde at kæde tråde sammen på?

Jeg er slet ikke med på hvad du egentlig vil. Hvis du kan vise siden
online, er det formentlig en del lettere at se hvad du mener.


> Men følgende kode virker ikke helt:
>> Dim id
>> id = Request.Querystring("id")
>> strSQL = "SELECT * FROM ordbog WHERE forbogstav = '" & id & "'"

Start med at udskrive din sql-kode. Se hvordan her:
<http://asp-faq.dk/article/?id=41>


> Linie 16 er:
> Response.write "<a href='beskrivelse.asp?ID=" & rs("ID") & "'>"

Du har ikke ændret Do ... Loop While til Do While ... Loop endnu, vel?
Se sidste del af mit forrige indlæg.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Killstun (20-01-2005)
Kommentar
Fra : Killstun


Dato : 20-01-05 08:22

Du kan se siden her:
http://www.tec-mtl.dk/ny/ordbogen.asp

Hvis du klikker på bogstavet A, kommer der nogle valgmuligheder som
starter med bogstavet A ude til venstre af siden. Klikker du på en af
disse, kan man læse posten, og der vil jeg gerne have tilhørende poster
som også starter med A ude til venstre, og ikke alle poster som det er
nu.

> Lad mig spørge på en anden måde: Hvad indeholder rs("id") - eller
> omvendt hvad indeholder request.querystring("id") ?
ID indeholder ID autonummerering.

> Er "kolonne" her en kolonne i en html-tabel?
Nej, en kolonne fra access databasen.

> Har du tilføjet "A" som forbogstav til samtlige poster?
Nej, der findes forskellige forbogstaver fra A-Å.

> Du har ikke ændret Do ... Loop While til Do While ... Loop endnu, vel?
Jeg har ændret det nu.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (20-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-05 14:25

Killstun skrev:

> Du kan se siden her:
> http://www.tec-mtl.dk/ny/ordbogen.asp

Tak. Jeg kan se at du stadig har problemer med at håndtere tomme postsæt
(se fx <http://www.tec-mtl.dk/ny/ordbog.asp?bogstav=E>).

> Hvis du klikker på bogstavet A, kommer der nogle valgmuligheder som
> starter med bogstavet A ude til venstre af siden. Klikker du på en af
> disse, kan man læse posten, og der vil jeg gerne have tilhørende poster
> som også starter med A ude til venstre, og ikke alle poster som det er
> nu.

O.k. - jeg tror jeg er med nu. Du skal have venstresiden til at udvælge
forbogstavet ud fra det id-nummer du får via querystring.

Det kan gøres med et join - men præcis hvordan det skal se ud kan jeg
ikke sige uden at kende tabelstrukturen.

Hentes beskrivelserne fra samme tabel som opslagene?

Hvis der kun er én tabel, kan du gøre som følger (ret selv feltnavne
til):

sql = "SELECT f.* FROM ordbog o INNER JOIN ordbog f " & _
   "ON o.forbogstav = f.forbogstav WHERE o.id = " & ID

Hvis du henter beskrivelsen før listen over emner med samme forbogstav,
kan du også bare finde forbogstavet i første opslag:

sqlB = "SELECT forbogstav, beskrivelse FROM ordbog WHERE id = " & id

set rsB = conn.execute(sqlB)
IF not rsB.EOF Then
   forbogstav = rsB("forbogstav")
   beskrivelse = rsB("beskrivelse")
End IF
rsB.close
set rsB = nothing

sqlL = "SELECT * FROM ordbog WHERE forbogstav = '" & forbogstav & "'"
....


>> Du har ikke ændret Do ... Loop While til Do While ... Loop endnu, vel?
> Jeg har ændret det nu.

Også i ordbog.asp?

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Killstun (20-01-2005)
Kommentar
Fra : Killstun


Dato : 20-01-05 15:31

> Tak. Jeg kan se at du stadig har problemer med at håndtere tomme postsæt
Ja, er ikke kommet så langt endnu. Ville lige have det andet til at virke
først, da jeg har nørklet med dette problem i nogle dage.

> O.k. - jeg tror jeg er med nu. Du skal have venstresiden til at udvælge
> forbogstavet ud fra det id-nummer du får via querystring.
Ja, jeg vil have venstre side til at udvælge forbogstavet på det pågældende
ID nummer jeg har åbent, for at kunne udvælge tilhørende poster som har med
emnet at gøre....Så man kan læse videre om andre ting, der har med denne
tråd at gøre. Som du nok kan se er det en ordbog jeg er ved at lave, og vil
derfor gerne have alle poster som starter med fx A til at stå i venstre
side, hvis man læser om et emne der starter med bogstavet A.

> Det kan gøres med et join - men præcis hvordan det skal se ud kan jeg
> ikke sige uden at kende tabelstrukturen.
Kan jeg give dig et link så du evt. kan hente databasen og se hvad jeg har
lavet?

Har kigget lidt på dine forslag, men er ikke så ferm til ASP endnu så håber
der findes en nemmere måde....Men sikkert fordi du ikke har set min
database endnu, da jeg tror det er langt simplere end jeg går og tror.

> Også i ordbog.asp?
Nej, ikke endnu.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (20-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-01-05 17:38

Killstun skrev:

>> Det kan gøres med et join - men præcis hvordan det skal se ud
>> kan jeg ikke sige uden at kende tabelstrukturen.

> Kan jeg give dig et link så du evt. kan hente databasen og se
> hvad jeg har lavet?

Nej - af princip henter jeg ikke den slags. Men vis gerne de to
select-sætninger du bruger nu - og beskriv de tabeller der er i
brug (hvilke felter indeholder de).


> Har kigget lidt på dine forslag, men er ikke så ferm til ASP
> endnu så håber der findes en nemmere måde

Det er ikke så svært endda - men det kan sikkert godt se
forvirrende ud. Overvej evt. at købe eller låne et hæfte om
databaser. Det kan være en god investering.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste