/ 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
Brug URL variabel i hentning a oplysninger~
Fra : Carsten


Dato : 06-01-04 20:54

Hej
Jeg er RET ny til ASP, så bær over med mig...
Mit problem lyder således: Jeg vil gerne lave en side der
udnytter oplysninger fra URLén til at skrive en artikel.
Det har jeg delvist gjort således:

<%
Dim id
id = Request.QueryString("id")
IF IsEmpty(id) THEN
Response.Write rs("navn")
ELSE
Response.Write rs("navn")
END IF
%>

OK, jeg vil gerne have det sådan her:

<%
Dim id
id = Request.QueryString("id")
IF IsEmpty(id) THEN
Response.Write rs("navn")
ELSE

id nummeret skal indsættes som variabel i den del af recordsættet
der hedder ID, altså:
rs("ID") = id

Response.Write rs("navn")
END IF
%>

Kan dette gøres rimeligt simpelt, eller skal jeg gå en anden vej
omkring det. Det skal lige nævnes at jeg ikke vil ændre denne
linie:

strSQL = "Select * from tekst Order By periodestart Desc"

håber i kan hjælpe mig.
Carsten



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

 
 
Jens Gyldenkærne Cla~ (06-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-01-04 22:08

Carsten skrev:

> Jeg er RET ny til ASP, så bær over med mig...

Fair nok. Kender du <http://html.dk/tutorials/asp/> og
<http://asp-faq.dk/>?


> Dim id
> id = Request.QueryString("id")
> IF IsEmpty(id) THEN
> Response.Write rs("navn")
> ELSE
> Response.Write rs("navn")
> END IF

Den if-sætning er ret ligegyldig - du har præcis samme handling før
og efter else. Noget andet er at det er svært at se sammenhængen
mellem din querystring og dit postsæt. Normalt henter man en værdi
fra querystring og bruger den til at lave en sql-sætning (se fx det
sidste eksempel på <http://html.dk/tutorials/asp/lektion19.asp>)


> id nummeret skal indsættes som variabel i den del af recordsættet
> der hedder ID, altså:
> rs("ID") = id

Vil du opdatere dit postsæt? Prøv at fortælle lidt mere om hvad du
gerne vil have siden til at gøre (glem alt om hvordan det gøres
kodemæssigt - bare forklar hvad siden skal bruges til).

> Det skal lige nævnes at jeg ikke vil ændre denne linie:
>
> strSQL = "Select * from tekst Order By periodestart Desc"

Øh - hvorfor ikke? Det er ikke sikkert at det er nødvendigt at
ændre linjen, men det kan sagtens tænkes at det er praktisk. Hvis
formålet med siden fx er at vise én artikel fra tabellen, så er den
eneste fornuftige måde at gøre det på at bede databasen om at finde
den (SELECT * FROM tekst WHERE tekstID = 42).

Man kan godt hente alle poster og så løbe den igennem med asp-kode
til man finder den rigtige, men det er spild af resurser - siden
bliver langsommere og belastningen på serveren større end
nødvendigt.
--
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

Carsten Høyer (06-01-2004)
Kommentar
Fra : Carsten Høyer


Dato : 06-01-04 22:43

> Fair nok. Kender du <http://html.dk/tutorials/asp/> og
> <http://asp-faq.dk/>?
Jeg kender den øverste og har gennemgået den, og slår ofte op i den,
den er rigtig god.

Jeg vil gerne lave en forside der kan opdateres efter id i URLén. Det
er en form for kalender, hvor den kommende event skal stå på forsiden,
men man har så muligheden for at se tidligere events. Man klikker på
et link og siden bliver hentet ind, nu med en id-variabel i URLén.

Derfor:

<%
Dim id
id = Request.QueryString("id")
IF IsEmpty(id) THEN
Response.Write rs("navn")

....Skriver om kommende event...Folk klikker på et ældre link
Siden reloader, nu med id-variabel.

ELSE
Response.Write rs("navn")
END IF
%>

Det er så i det ovenstående, jeg mangler noget kode der kan bruge
id-variablen i min database, nærmere bestemt rs("ID").

Grunden til at jeg ikke vil ændre ved
strSQL = "Select * from tekst Order By periodestart Desc"

Er at jeg har brug for denne opsætning, for at kunne lave
kalendersystemet.

Ja, jeg ved ikke om det gjorde det klarere.
Jeg vil lige sige, at jeg har forsøgt at finde et svar her på siden
(html.dk), inden jeg selv tog affære.

mvh Carsten

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

Jens Gyldenkærne Cla~ (07-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-01-04 11:14

Carsten Høyer skrev:

> Jeg vil gerne lave en forside der kan opdateres efter id i
> URLén. Det er en form for kalender, hvor den kommende event
> skal stå på forsiden, men man har så muligheden for at se
> tidligere events. Man klikker på et link og siden bliver
> hentet ind, nu med en id-variabel i URLén.


Fint - god beskrivelse.


> Derfor:
>
> <%
> Dim id
> id = Request.QueryString("id")
> IF IsEmpty(id) THEN
> Response.Write rs("navn")

Prøv at kigge på koden til person.asp på siden her:
<http://html.dk/tutorials/asp/lektion19.asp>. Der er noget
fundamentalt galt med din kode herover. De tre første linjer er for
sin vis o.k. - men du bruger slet ikke dit id til at hente noget
fra databasen med. HTML.dk's tutorial gennemgår det ganske godt -
prøv at læse det sidste eksempel igennem en gang til og se om ikke
det hjælper. Spørg evt. her hvis der er noget der volder problemer.



> Det er så i det ovenstående, jeg mangler noget kode der kan
> bruge id-variablen i min database, nærmere bestemt rs("ID").

Netop. Igen - se lektion 19 i asp-tutorialen. Person.asp svarer til
den fil du vil lave.


> Grunden til at jeg ikke vil ændre ved
> strSQL = "Select * from tekst Order By periodestart Desc"
>
> Er at jeg har brug for denne opsætning, for at kunne lave
> kalendersystemet.

Hvordan det? Et par opklarende spørgsmål:

- den tekst du vil vise ved hjælp af id, ligger den i tabellen
"tekst"?

- skal din side også vise de andre nyheder i listeform?

I eksemplet fra html-tutorialen bruger de en side til at lave en
liste (liste.asp) og en anden side til at vise enkeltopslag
(person.asp). De to funktioner kan godt samles på én side - så skal
man bare lave to forespørgsler på samme side.

Til listeformen skal man ikke bruge kriteriet fra querystring (her
kan det til gengæld svare sig at nøjes med at vælge de felter man
vil udskrive i listen - det glemmer de i tutorialen). Til
enkeltudskrivningen skal der et kriterium på - nemlig id-nummeret
fra querystring'en.


> Ja, jeg ved ikke om det gjorde det klarere.

Jo - noget. Der er stadig nogle ting der er tvivl om, men det er
ikke usædvanligt.

> Jeg vil lige sige, at jeg har forsøgt at finde et svar her på
> siden (html.dk), inden jeg selv tog affære.


For god ordens skyld - du skriver på usenet. HTML.dk giver adgang
til nogle af grupperne på usenet, men grupperne har ikke noget med
HTML.dk at gøre - og mange af os der skriver herinde benytter ikke
HTMl.dk til det. Se evt. HTML.dk's egen forklaring:
<http://html.dk/nyhedsgrupper/usenet.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

Carsten (07-01-2004)
Kommentar
Fra : Carsten


Dato : 07-01-04 12:50

> Prøv at kigge på koden til person.asp på siden her:
> <http://html.dk/tutorials/asp/lektion19.asp>.

NÅH JA, utroligt, jeg har gloet på det eksempel så mange gange, men
har bare ikke kunne se det. Nå, det skal nok give mig problemer, men
så vender jeg tilbage.

Hvis du synes jeg mangler at udredde nogle forklaringer (af hensyn til
de andre brugere), så sig endelig til

Carsten

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

Carsten (07-01-2004)
Kommentar
Fra : Carsten


Dato : 07-01-04 13:09

Ok, jeg har lige et kort spørgsmål til emnet.
Er det meget ressource krævende at blive ved med at redefinere
recordsettet.

først definerer jeg det Enten:
Dim id
id = Request.QueryString("id")
IF IsEmpty(id) THEN          
strSQL = "Select * from tekst Order By periodestart Desc"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
ELSE
strSQL = "Select * From tekst Where ID = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
END IF

Og ændrer det så igen senere til:
strSQL = "Select * from tekst Order By periodestart Desc"

Det er umiddelbart nødvendigt for at kunne få "Den nyeste nyhed" øverst i
min "link-ramme".

Carsten


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

Jens Gyldenkærne Cla~ (07-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-01-04 13:45

Carsten skrev:

> Ok, jeg har lige et kort spørgsmål til emnet.

Hvilket emne? Det er svært at se når du ikke citerer noget. Læs
venligst min signatur.


> Er det meget ressource krævende at blive ved med at redefinere
> recordsettet.

Man skal som udgangspunkt ikke hente flere data end man skal bruge
- og kun holde dataforbindelsen åben når den skal bruges.

> først definerer jeg det Enten:

[snip]

> Og ændrer det så igen senere til:
> strSQL = "Select * from tekst Order By periodestart Desc"

Ikke noget problem - det er kun to forespørgsler.


> Det er umiddelbart nødvendigt for at kunne få "Den nyeste
> nyhed" øverst i min "link-ramme".

Hvis din anden sql-sætning skal bruges til at vise den nyeste nyhed
- og kun den - bør du begrænse søgningen til kun at tage én post
med. I Access gøres det med kommandoen "TOP x" - hvor x er det
antal poster man vil have med. Prøv derfor med:

   SELECT TOP 1 * FROM tekst ORDER BY periodestart DESC

Lille ekstrakommentar. Hvis du nu kun skal udskrive overskrift og
titel fra tabellen tekst - og ikke fx feltet "fuldtekst" - så er
det en rigtig god ide at holde begrænse søgningen til de felter du
skal bruge. Hvis fuldtekst indeholder en lang artikel, er der jo
ikke grund til at databasen skal sende hele artikelteksten med når
den ikke skal bruges i udskriften.
--
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 : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste