Avatar billede page Nybegynder
19. december 2004 - 17:03 Der er 22 kommentarer og
1 løsning

input til db

Hej!

Jeg har lige 2 spørgsmål.

1: Hvordan trækker jeg det næstnyest indhold i min access database ud?

2: Jeg har forsøgt, ved hjælp af tutorialsne på html.dk, at indsætte data i min db. Og det virker tildels også. Problemet er bare at den kun modtager den sidste info jeg sender.

Min sql ser sådan ud:

strSQL = "Insert into news (overskrift) values('" & Request.Form("overskrift") & "')"
strSQL = "Insert into news (brodtekst) values('" & Request.Form("brodtekst") & "')"
strSQL = "Insert into news (tekst) values('" & Request.Form("tekst") & "')"
strSQL = "Insert into news (dato) values('" & Request.Form("dato") & "')"

Men når jeg udfylder den "data", så er det kun 'dato' der ender i db'en. Hvad er årsagen til det?

mvh
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:19 #1
Du har ikke læst http://www.html.dk/tutorials/asp/lektion20.asp ordentligt! :-)
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:21 #2
..eller også forstår du det bare ikke :-)

Løsningen:

strSQL = "Insert into news (overskrift, brodtekst, tekst, dato) values('" & request.form("overskrift") & "','" & request.form("brodtekst") & "','" & request.form("tekst") & "','" & request.form("dato") & "')"
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:22 #3
..hvis du undrer dig over hvor jeg har det fra, så er det fra "Eksempel: Indsæt en ny person i tabellen"..
Avatar billede page Nybegynder
19. december 2004 - 18:33 #4
Hmm jeg har fået det til at virke nu. Efter at have kigget på det endnu engang. Det endte med at se sådan her ud:

strSQL = "Insert into news ("

strSQL = strSQL & "overskrift, "
strSQL = strSQL & "brodtekst, "
strSQL = strSQL & "tekst, "
strSQL = strSQL & "dato) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("overskrift") & "', "
strSQL = strSQL & "'" & Request.Form("brodtekst") & "', "
strSQL = strSQL & "'" & Request.Form("tekst") & "', "
strSQL = strSQL & "'" & Request.Form("dato") & "')"

Jeg kan se du har lavet et løsningsforslag der fylder noget mindre. Jeg har ikke prøvet det da jeg har fået det til at virke, ellers tak :)

Men ved du også hvordan jeg hiver det næstnyest input af db'en ud?
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:35 #5
Du bruger Top 1.. eksempel:

sql = "select Top 1 from TabelNavn where Noget = 'andet'"

Det kommer an på, hvad og hvordan du ønsker det..
Avatar billede page Nybegynder
19. december 2004 - 18:43 #6
Men ved Top 1 får jeg den første. Jeg vil have nr 2 og kun nr 2. Hvis du forstår.
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:45 #7
Så Top 3 :-)

Eller:
strSQL = "select * from TabelNavn order by id Desc"

Desc = faldende (dvs, nyeste/største øverst)
Avatar billede page Nybegynder
19. december 2004 - 18:51 #8
Ja.. men ved brug af Top 3 får jeg de 3 nyeste. Så langt er jeg med. Men jeg vil ikke have den nyeste vist. Kun den næst nyeste. Altså en Top 2 uden nr. 1 :D
Avatar billede thesurfer Nybegynder
19. december 2004 - 18:55 #9
hmm.. underligt, men OK :-)
hang on :-)
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:16 #10
Jeg tror at det her virker:

dim c ' står for Counter = tæller

strSQL = "select * from TabelNavn order by id Desc"
.......

if not (rs.bof or rs.eof) then
c = 1 ' nr 1
do while not rs.eof

if c = 1 then
  c = c + 1
  rs.movenext
end if

if c > 3 then exit loop

response.write rs("FeltNavnHer")

c = c + 1
loop
else
  response.write "intet fundet"
end if
Avatar billede page Nybegynder
19. december 2004 - 19:25 #11
Hmm jeg får en fejl:

Microsoft VBScript compilation error '800a040f'

Invalid 'exit' statement

/includes/news2.txt, line 21

if c > 3 then exit loop
-------------------^
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:27 #12
doh! :-)

Det hedder: exit do
Avatar billede page Nybegynder
19. december 2004 - 19:35 #13
Så jeg indsætter 'do' istedet for 'loop'?
I så fald får jeg denne fejl:

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/index.asp, line 0

Hvad gør EOF og BOF?
Avatar billede page Nybegynder
19. december 2004 - 19:36 #14
DOH! jeg har fundet ud af det med BOF og EOF!
Avatar billede page Nybegynder
19. december 2004 - 19:38 #15
Hey det virker. Jeg kom til at skrive  sql = "select Top 1 from osv"
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:40 #16
Så smider jeg et svar? :-)
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:44 #17
Takker for points :-)
Avatar billede page Nybegynder
19. december 2004 - 19:46 #18
Tak for hjælpen!

Det eneste er så at den gentager 'feltnavnet'. Så det står 2 gange.
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:47 #19
eh? Hvad mener du? henter den ikke både nr 2 og nr 3?
Avatar billede page Nybegynder
19. december 2004 - 19:49 #20
nej den henter kun nr 2, hvilket også er helt perfekt. Men den henter den så 2 gange hvilket ikke er meningen :)
Avatar billede thesurfer Nybegynder
19. december 2004 - 19:51 #21
dammit.. så virke det jo ikke :-)

doh! har lige set fejlen! :-)

Sådan:

c = c + 1
rs.movenext ' denne manglede
loop
else
  response.write "intet fundet"
end if
Avatar billede page Nybegynder
19. december 2004 - 20:01 #22
Sådan nu virker det helt perfekt!

Takker igen :)
Avatar billede thesurfer Nybegynder
19. december 2004 - 20:05 #23
No problemo :-)
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