|
| Hente den nyeste Fra : claus |
Dato : 12-06-03 12:43 |
|
Hej
Jeg er absolut begynder indenfor asp - så er niveauet lagt
Jeg har gennemlæst http://www.html.dk/tutorials/asp/lektion19.asp
men vil gerne lave et par ændringer som test.
Hvis man nu gerne vil have vist den sidste nye person som er
oprettet - hvordan forespørger man på det? Kan man benytte dette
eksempel eller skal der skrives et helt nyt?
Jeg vil meget gerne lære at lave en nyhedsoversigt hvor den
sidste nyhed bliver vist.
Håber I kan hjælpe - på forhånd tak!
/Claus
--
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~ (12-06-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 12-06-03 12:50 |
|
claus skrev:
> Hvis man nu gerne vil have vist den sidste nye person som er
> oprettet - hvordan forespørger man på det? Kan man benytte dette
> eksempel eller skal der skrives et helt nyt?
Du skal bruge ORDER BY som det er vist på siden. Hvis det skal
virke efter hensigten, skal du have et felt der kan sorteres efter
så de nyeste poster kommer først. Et autonummerfelt (ofte
primærnøglen) er fint til det - men man kan også bruge fx et
datofelt.
Følgende forespørgsel vælger alle poster, sorteret efter faldende
id-nummer (~ nyeste først):
SELECT id, dato, overskrift, tekst FROM nyheder ORDER BY id DESC
> Jeg vil meget gerne lære at lave en nyhedsoversigt hvor den
> sidste nyhed bliver vist.
Hvis du så kun skal bruge den første post, kan du skrive sådan her:
SELECT TOP 1 id, dato, overskrift, tekst
FROM nyheder ORDER BY id DESC
Tallet efter TOP afgør hvor mange poster du tager med - TOP 5 vil
dermed hente de fem første.
--
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
| |
claus (12-06-2003)
| Kommentar Fra : claus |
Dato : 12-06-03 13:18 |
|
Hej Jens
Tak for svaret - jeg har nu forsøgt lidt, men uden held.
Jeg har følgende felter i databasen:
ID
Fornavn
Efternavn
Telefon
Foedselsdato
Er det sådan du mener det skal se ud:
' SQL forespørgsel
strSQL = ""SELECT TOP 1 id FROM Fornavn ORDER BY id DESC""
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
' Gennemløb Recordset (rs) med en løkke
Do
' Udskriv værdien af kolonnen Fornavn
Response.Write rs("Fornavn") & "<br>"
/Claus
Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> claus skrev:
>
> > Hvis man nu gerne vil have vist den sidste nye person som er
> > oprettet - hvordan forespørger man på det? Kan man benytte dette
> > eksempel eller skal der skrives et helt nyt?
>
> Du skal bruge ORDER BY som det er vist på siden. Hvis det skal
> virke efter hensigten, skal du have et felt der kan sorteres efter
> så de nyeste poster kommer først. Et autonummerfelt (ofte
> primærnøglen) er fint til det - men man kan også bruge fx et
> datofelt.
>
> Følgende forespørgsel vælger alle poster, sorteret efter faldende
> id-nummer (~ nyeste først):
>
> SELECT id, dato, overskrift, tekst FROM nyheder ORDER BY id DESC
>
>
> > Jeg vil meget gerne lære at lave en nyhedsoversigt hvor den
> > sidste nyhed bliver vist.
>
> Hvis du så kun skal bruge den første post, kan du skrive sådan her:
>
> SELECT TOP 1 id, dato, overskrift, tekst
> FROM nyheder ORDER BY id DESC
>
>
> Tallet efter TOP afgør hvor mange poster du tager med - TOP 5 vil
> dermed hente de fem første.
> --
> 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
--
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
| |
Jørn Andersen (12-06-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 12-06-03 13:38 |
|
On Thu, 12 Jun 2003 12:18:02 +0000 (UTC), claus <cpvenlov@yahoo.dk>
wrote:
>Jeg har følgende felter i databasen:
>ID
>Fornavn
>Efternavn
>Telefon
>Foedselsdato
>
>Er det sådan du mener det skal se ud:
>
>' SQL forespørgsel
>strSQL = ""SELECT TOP 1 id FROM Fornavn ORDER BY id DESC""
Her mangler du lige det andet/de andre feltnavn(e):
strSQL = "SELECT TOP 1 id, fornavn, efternavn (, ...) FROM Fornavn
ORDER BY id DESC"
Herfter skulle det køre
(Hedder tabellen forresten "fornavn"??)
Good luck!
PS: Gider du tage et kig på:
<URL: http://www.usenet.dk/netikette/citatteknik.html>
--
Jørn Andersen,
Brønshøj
| |
claus (15-06-2003)
| Kommentar Fra : claus |
Dato : 15-06-03 18:49 |
|
Tak for hjælpen - nu funker det!
/Claus
Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On Thu, 12 Jun 2003 12:18:02 +0000 (UTC), claus <cpvenlov@yahoo.dk>
> wrote:
>
> >Jeg har følgende felter i databasen:
> >ID
> >Fornavn
> >Efternavn
> >Telefon
> >Foedselsdato
> >
> >Er det sådan du mener det skal se ud:
> >
> >' SQL forespørgsel
> >strSQL = ""SELECT TOP 1 id FROM Fornavn ORDER BY id DESC""
>
> Her mangler du lige det andet/de andre feltnavn(e):
> strSQL = "SELECT TOP 1 id, fornavn, efternavn (, ...) FROM Fornavn
> ORDER BY id DESC"
>
> Herfter skulle det køre
>
> (Hedder tabellen forresten "fornavn"??)
>
> Good luck!
>
> PS: Gider du tage et kig på:
> <URL: http://www.usenet.dk/netikette/citatteknik.html>
>
> --
> Jørn Andersen,
> Brønshøj
--
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~ (12-06-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 12-06-03 13:27 |
|
claus skrev:
> Tak for svaret - jeg har nu forsøgt lidt, men uden held.
> Er det sådan du mener det skal se ud:
>
> ' SQL forespørgsel
> strSQL = ""SELECT TOP 1 id FROM Fornavn ORDER BY id DESC""
Nej - her udvælger ud kun feltet id. Hedder din tabel i øvrigt
Fornavn? Du skal inkludere alle de felter du vil udskrive i din
feltliste:
SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato FROM
personer ORDER BY id DESC
Bemærk at id-feltet ikke behøver at være med i feltlisten for at
blive brugt i ORDER BY-delen. Og bemærk også at TOP X er uafhængig
af hvilke felter du medtager.
En generel kommentar:
> ' Gennemløb Recordset (rs) med en løkke
> Do
Det er en god ide at tjekke for EOF _inden_ man går ind i løkken.
Ellers kan man få fejl. I stedet for at skrive:
Do
' løkkekode
Loop While Not rs.EOF
- kan man skrive:
Do While Not rs.EOF
' løkkekode
Loop
Der er kun ét tilfælde hvor der er forskel på de to metoder -
nemlig der hvor postsættet er tomt fra starten. Men den forskel er
til gengæld ret væsentlig.
NB: Skriv venligst dine svar under det du svarer på - og beskær
dine citater, så du kun citerer det der er nødvendigt for at forstå
sammenhængen. Se evt. min signatur.
--
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
| |
claus (12-06-2003)
| Kommentar Fra : claus |
Dato : 12-06-03 13:41 |
|
Først vil jeg lige sige at det virker! Tak
Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> claus skrev:
>
> > Tak for svaret - jeg har nu forsøgt lidt, men uden held.
>
> > Er det sådan du mener det skal se ud:
> >
> > ' SQL forespørgsel
> > strSQL = ""SELECT TOP 1 id FROM Fornavn ORDER BY id DESC""
>
> Nej - her udvælger ud kun feltet id. Hedder din tabel i øvrigt
> Fornavn? Du skal inkludere alle de felter du vil udskrive i din
> feltliste:
Tabellen hedder personer
> SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato FROM
> personer ORDER BY id DESC
>
>
> Bemærk at id-feltet ikke behøver at være med i feltlisten for at
> blive brugt i ORDER BY-delen. Og bemærk også at TOP X er uafhængig
> af hvilke felter du medtager.
Super - det virker nu fint!
>
> En generel kommentar:
> > ' Gennemløb Recordset (rs) med en løkke
> > Do
>
> Det er en god ide at tjekke for EOF _inden_ man går ind i løkken.
> Ellers kan man få fejl. I stedet for at skrive:
>
> Do
> ' løkkekode
> Loop While Not rs.EOF
>
> - kan man skrive:
>
> Do While Not rs.EOF
> ' løkkekode
> Loop
>
> Der er kun ét tilfælde hvor der er forskel på de to metoder -
> nemlig der hvor postsættet er tomt fra starten. Men den forskel er
> til gengæld ret væsentlig.
>
Dette forstår jeg ikke helt, men måske jeg skulle læse lidt mere om
ASP . Findes der i øvrigt nogle bøger på dansk som du kan
anbefale?
> NB: Skriv venligst dine svar under det du svarer på - og beskær
> dine citater, så du kun citerer det der er nødvendigt for at forstå
> sammenhængen. Se evt. min signatur.
> --
> 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
--
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
| |
Jørn Andersen (12-06-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 12-06-03 15:07 |
|
On Thu, 12 Jun 2003 12:40:43 +0000 (UTC), claus <cpvenlov@yahoo.dk>
wrote:
>Jens Gyldenkærne Clausen
>> Det er en god ide at tjekke for EOF _inden_ man går ind i løkken.
>> Ellers kan man få fejl. I stedet for at skrive:
>>
>> Do
>> ' løkkekode
>> Loop While Not rs.EOF
>>
>> - kan man skrive:
>>
>> Do While Not rs.EOF
>> ' løkkekode
>> Loop
>>
>> Der er kun ét tilfælde hvor der er forskel på de to metoder -
>> nemlig der hvor postsættet er tomt fra starten. Men den forskel er
>> til gengæld ret væsentlig.
>>
>
>Dette forstår jeg ikke helt
Forestil dig, at du har hentet et udtræk (recordset) fra databasen.
I første tilfælde vil du gå ind i loopen, uanset om recordsettet er
tomt eller ej - men hvis den er tom vil du formentlig få en fejl i den
kode, som ligger inde i loopen.
I andet tilfælde vil du ikke gå ind i loopen, hvos recordsettet er
tomt (pga. betingelsen "Not rs.EOF" - EOF betyder End-Of-File) - og du
undgår således at få fejl.
>Findes der i øvrigt nogle bøger på dansk som du kan anbefale?
Hvis du kan overtales til at læse engelsk, vil jeg *klart* anbefale
"Beginning Active Server Pages 3.0" fra forlaget Wrox (kan fx købes
via Amazon.com).
<url: http://www.wrox.com/books/0764543636.shtml>
Det er en moppedreng på knapt 1200 sider, men den er ret letlæst:
Starter fra begyndelsen og kommer så langt, at man selv kan forstå det
meste af resten.
Der er en opføger til den, som hedder: "Professional Active Server
Pages 3.0", men den får du næppe det store brug for, hvis ikke du har
kontrol over din egen server, eller hvis du vil meget i dybden med fx.
fejlhåndtering etc.
Good luck!
PS: Gider du tage et kig på:
<URL: http://www.usenet.dk/netikette/citatteknik.html>
--
Jørn Andersen,
Brønshøj
| |
Torben Brandt (12-06-2003)
| Kommentar Fra : Torben Brandt |
Dato : 12-06-03 12:51 |
|
claus wrote:
> Jeg har gennemlæst http://www.html.dk/tutorials/asp/lektion19.asp
> men vil gerne lave et par ændringer som test.
>
> Hvis man nu gerne vil have vist den sidste nye person som er
> oprettet - hvordan forespørger man på det? Kan man benytte dette
> eksempel eller skal der skrives et helt nyt?
>
> Jeg vil meget gerne lære at lave en nyhedsoversigt hvor den
> sidste nyhed bliver vist.
Med nogle få tilføjelser kan man godt :)
Du skal have et felt i din tabel, der er at typen autonummering. Så vil
den post med den største værdi være den nyeste. Lad os kalde feltet 'id'
Vi sorter efter id i aftagende orden, for så er den nyeste først.
Så udtage vi kun den førstee (TOP 1).
I alt bliver de til:
SELECT TOP 1 titel, nyhed FROM nyheder ORDER BY id DESC
Håber det er forståeligt,
Torben
| |
claus (12-06-2003)
| Kommentar Fra : claus |
Dato : 12-06-03 14:14 |
|
claus wrote in dk.edb.internet.webdesign.serverside.asp:
> Hej
> Jeg er absolut begynder indenfor asp - så er niveauet lagt
>
> Jeg har gennemlæst http://www.html.dk/tutorials/asp/lektion19.asp
> men vil gerne lave et par ændringer som test.
>
> Hvis man nu gerne vil have vist den sidste nye person som er
> oprettet - hvordan forespørger man på det? Kan man benytte dette
> eksempel eller skal der skrives et helt nyt?
>
> Jeg vil meget gerne lære at lave en nyhedsoversigt hvor den
> sidste nyhed bliver vist.
>
> Håber I kan hjælpe - på forhånd tak!
>
> /Claus
>
> --
> 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
Opfølgning
Nu tester jeg de forskellige eksempler som der er omkring ASP i
denne tutorials http://www.html.dk/tutorials/asp/lektion19.asp.
Jeg forsøger her en kombination af de forskellige. Hvorfor vil dette
ikke fungere?
strSQL = "SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato
FROM personer ORDER BY id DESC"
Set rs = Conn.Execute(strSQL)
Do
' Personens navn
strNavn = rs("Fornavn")
' lav et link til person.asp med Id-værdien i URL
strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn &
"</a>"
' Liste med links
Response.Write "<li>" & strLink & "</li>"
' Gå til næste Record i rs
rs.MoveNext
' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
--
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
| |
Jensb (12-06-2003)
| Kommentar Fra : Jensb |
Dato : 12-06-03 16:51 |
|
> Opfølgning
>
> Nu tester jeg de forskellige eksempler som der er omkring ASP i
> denne tutorials http://www.html.dk/tutorials/asp/lektion19.asp.
> Jeg forsøger her en kombination af de forskellige. Hvorfor vil dette
> ikke fungere?
>
> strSQL = "SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato
> FROM personer ORDER BY id DESC"
> Set rs = Conn.Execute(strSQL)
Fordi du kun sorterer efter Id feltet, men du henter ikke Id...så derfor kan
du ikke bagefter bruge feltet Id i dit link.
Så enten skal du:
strSQL = "SELECT TOP 1 * FROM personer ORDER BY id DESC"
Hermed henter du ALLE felter, og kan derfor efterfølgende bruge ALLE felter
( * = alle felter )
Eller også
strSQL = "SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato, Id FROM
personer ORDER BY id DESC"
Her har jeg bare tilføjet Id også, til de felter der skal hentes
Iøvrigt bør du vel nu ikke længere kun vælge TOP 1, da det så bliver en ret
kort liste.
> Do
> ' Personens navn
> strNavn = rs("Fornavn")
>
> ' lav et link til person.asp med Id-værdien i URL
> strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn &
> "</a>"
>
> ' Liste med links
> Response.Write "<li>" & strLink & "</li>"
>
> ' Gå til næste Record i rs
> rs.MoveNext
>
> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF
>
> Conn.Close
> Set Conn = Nothing
Det vil muligvis virke, men plejer man ikke at starte en liste med <ul> og
slutte med </ul>
Så det skal være:
Response.Write "<ul>"
Do
' Personens navn
strNavn = rs("Fornavn")
' lav et link til person.asp med Id-værdien i URL
strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn &
"</a>"
' Liste med links
Response.Write "<li>" & strLink & "</li>"
' Gå til næste Record i rs
rs.MoveNext
' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
Response.Write "</ul">
| |
claus (15-06-2003)
| Kommentar Fra : claus |
Dato : 15-06-03 18:48 |
|
Tak for hjælpen
/Claus
Jensb wrote in dk.edb.internet.webdesign.serverside.asp:
> > Opfølgning
> >
> > Nu tester jeg de forskellige eksempler som der er omkring ASP i
> > denne tutorials http://www.html.dk/tutorials/asp/lektion19.asp.
> > Jeg forsøger her en kombination af de forskellige. Hvorfor vil dette
> > ikke fungere?
> >
> > strSQL = "SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato
> > FROM personer ORDER BY id DESC"
> > Set rs = Conn.Execute(strSQL)
>
> Fordi du kun sorterer efter Id feltet, men du henter ikke Id...så derfor kan
> du ikke bagefter bruge feltet Id i dit link.
>
> Så enten skal du:
> strSQL = "SELECT TOP 1 * FROM personer ORDER BY id DESC"
> Hermed henter du ALLE felter, og kan derfor efterfølgende bruge ALLE felter
> ( * = alle felter )
> Eller også
> strSQL = "SELECT TOP 1 Fornavn, Efternavn, telefon, Foedselsdato, Id FROM
> personer ORDER BY id DESC"
>
> Her har jeg bare tilføjet Id også, til de felter der skal hentes
>
> Iøvrigt bør du vel nu ikke længere kun vælge TOP 1, da det så bliver en ret
> kort liste.
>
>
> > Do
> > ' Personens navn
> > strNavn = rs("Fornavn")
> >
> > ' lav et link til person.asp med Id-værdien i URL
> > strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn &
> > "</a>"
> >
> > ' Liste med links
> > Response.Write "<li>" & strLink & "</li>"
> >
> > ' Gå til næste Record i rs
> > rs.MoveNext
> >
> > ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> > Loop While Not rs.EOF
> >
> > Conn.Close
> > Set Conn = Nothing
>
> Det vil muligvis virke, men plejer man ikke at starte en liste med <ul> og
> slutte med </ul>
>
> Så det skal være:
>
> Response.Write "<ul>"
> Do
> ' Personens navn
> strNavn = rs("Fornavn")
>
> ' lav et link til person.asp med Id-værdien i URL
> strLink = "<a href='person.asp?id=" & rs("Id") & "'>" & strNavn &
> "</a>"
>
> ' Liste med links
> Response.Write "<li>" & strLink & "</li>"
>
> ' Gå til næste Record i rs
> rs.MoveNext
>
> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF
>
> Conn.Close
> Set Conn = Nothing
> Response.Write "</ul">
>
>
--
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
| |
|
|