Avatar billede hjaelp Nybegynder
04. december 2001 - 13:15 Der er 28 kommentarer og
1 løsning

Hent seks forskellige poster

Jeg har gennem længere tid forsøgt at få hjælp til at lave et SlideShow fra en database. Det har jeg opgivet og nu forsøger jeg så noget andet.

Jeg vil gerne have hentet seks tilfældige poster fra tabellen pix, og have dem til at hedde post1, post2, post3 o.s.v.

HJAELP ! ! !
Avatar billede hjaelp Nybegynder
04. december 2001 - 13:37 #1
Jeg skærer lige antallet af poster ned til tre. Det gør nu nok ikke den store forskel, men!!
Avatar billede nute Nybegynder
04. december 2001 - 13:53 #2
tja...er dette noe du leter etter.. ?`

jeg har ikke testet det, men jeg håper det kan gi deg en pekepinn på hva du skal gjøre.

Du setter antall tilfeldige uttrekk i variabelen \'maxCount\'

<%
Dim SQL, countSQL, counter, maxCount, RS
Set RS = Server.CreateObject(\"ADODB.Recordset\")
SQL = \"SELECT * FROM tabell\"
countSQL = \"SELECT COUNT(*) AS tot FROM tabell\"
maxCount = 3

RS.open SQL, Conn, 3, 3
Set countRS = Conn.Execute( countSQL )
intTot = CInt( countRS(\"tot\") )
countRS.close
Set countRS = nothing

if( maxCount > intTot ) then
  maxCount = intTot
end if

Randomize
while maxCount >= 0 
  tmp = intTot * Rnd + 1
  RS.Move tmp
  response.write RS(\"enKolonne\")
  counter = counter - 1
wend
%>


Avatar billede hjaelp Nybegynder
04. december 2001 - 14:09 #3
Det er da vidst der hen ad, ja.

Jeg tjekker lige om jeg kan få det til at virke.
Avatar billede hjaelp Nybegynder
04. december 2001 - 14:11 #4
Det er en anden type database kald, end den jeg har brugt indtil videre. Hvordan skriver jeg stien til databasen?
Avatar billede nute Nybegynder
04. december 2001 - 14:15 #5
jeg har ikke lagt med mitt connection object...det regnet jeg med du kunne finne ut av selv... jeg har bare brukt et connection object med navn \'Conn\'

\"Det er en anden type database kald, end den jeg har brugt indtil videre\"...hva mener du ?

Avatar billede hjaelp Nybegynder
04. december 2001 - 14:16 #6
Jeg skal have output\'et fra de forskellige kollonner til at hedde:
(Post 1) tekst1, billede1, link1
(Post 2) tekst2, billede2, link2
(Post 3) tekst3, billede3, link3


HJAELP
Avatar billede nute Nybegynder
04. december 2001 - 14:22 #7
jammen så kan du bare skrive dem ut på den måte:

while maxCount >= 0 
  tmp = intTot * Rnd + 1
  RS.Move tmp
  response.write RS(\"tekst\") & \"<br>\"
  response.write RS(\"billede\") & \"<br>\"
  response.write RS(\"link\") & \"<br>\" 
  counter = counter - 1
wend
Avatar billede hjaelp Nybegynder
04. december 2001 - 14:24 #8
ADODB.Recordset fejl \'800a0bb9\'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/www/Temp.asp, linje 27
Avatar billede hjaelp Nybegynder
04. december 2001 - 14:26 #9
set ObjConn = Server.CreateObject (\"ADODB.Connection\")
strConnDriver=\"Driver={Microsoft Access Driver (*.mdb)};\"
strConnPath=\"DBQ=\" & Server.MapPath (\"../db/data.mdb\")
objConn.Open strConnDriver & strConnPath

Dim SQL, countSQL, counter, maxCount, RS
Set RS = Server.CreateObject(\"ADODB.Recordset\")
SQL = \"SELECT * FROM pix\"
countSQL = \"SELECT COUNT(*) AS tot FROM pix\"
maxCount = 3

>>>Fejlen er i denne linie: RS.open SQL, Conn, 3, 3

Set countRS = Conn.Execute( countSQL )
intTot = CInt( countRS(\"tot\") )
countRS.close
Set countRS = nothing

if( maxCount > intTot ) then
  maxCount = intTot
end if

Randomize
while maxCount >= 0 
  tmp = intTot * Rnd + 1
  RS.Move tmp
  response.write RS(\"Tekst\") & \"<br>\"
  response.write RS(\"Billede\") & \"<br>\"
  response.write RS(\"Link\") & \"<br>\" 
  counter = counter - 1
wend
Avatar billede nute Nybegynder
04. december 2001 - 14:33 #10
jammen det er jo fordi ditt connection object heter \'objConn\' og ikke \'Conn\' !!

bytt ut :

RS.open SQL, Conn, 3, 3

med

RS.open SQL, objConn, 3, 3

og denne linje:

Set countRS = Conn.Execute( countSQL )

med denne:

Set countRS = objConn.Execute( countSQL )


Avatar billede hjaelp Nybegynder
04. december 2001 - 14:47 #11
Tak, jeg tror aldrig jeg lærer det her.
Der er dog stadig lige to ting.
1) Du har ikke svaret på spørgsmålet
2) Hvordan får jeg resultatet som variabler(Billede1, 2, 3 o.s.v.)
Avatar billede nute Nybegynder
04. december 2001 - 14:52 #12
1) så gjør jeg det nå ;-)
2) jeg ville helt klart ha lagt dem i en array, og ikke i variabler...hvorfor vil du nå legge dem i variabler ?
Avatar billede hjaelp Nybegynder
04. december 2001 - 15:00 #13
Fordi jeg ikke ved hvad en array er.

Jeg skal bruge dem således

Billede1(Linker til link 1) og tekst1 er \"AltText\"
Avatar billede hjaelp Nybegynder
04. december 2001 - 15:07 #14
fejl \'80020009\'
Undtagelse opstod.

Den henviser til denne blok:

while maxCount >= 0 
  tmp = intTot * Rnd + 1
  RS.Move tmp
  response.write RS(\"Tekst\") & \"<br>\"
  response.write RS(\"Billede\") & \"<br>\"
  response.write RS(\"Link\") & \"<br>\" 
  counter = counter - 1
wend

Avatar billede nute Nybegynder
04. december 2001 - 15:10 #15
feilen henviser til en eller annen linje...hva ligger i den linje ?
Avatar billede hjaelp Nybegynder
04. december 2001 - 15:18 #16
Den henviser til linien:
response.write RS(\"Tekst\") & \"<br>\"
Avatar billede nute Nybegynder
04. december 2001 - 15:20 #17
heter din kolonne \"Tekst\" ??
Avatar billede hjaelp Nybegynder
04. december 2001 - 15:27 #18
Ja, det gør den.
Avatar billede nute Nybegynder
04. december 2001 - 15:29 #19
og hvis ditt recordset objekt heter RS, så er det ingen feil i den linje...
Avatar billede hjaelp Nybegynder
04. december 2001 - 16:16 #20
Det skriver den nu, at der er?
Kan du hjælpe mig, med de der variabler?
Avatar billede nute Nybegynder
04. december 2001 - 16:19 #21
først ville jeg konsentrert meg om å få koden til å fungere...

prøv så å bytt ut denne:

while maxCount >= 0 
  tmp = intTot * Rnd + 1
  RS.Move tmp
  response.write RS(\"Tekst\") & \"<br>\"
  response.write RS(\"Billede\") & \"<br>\"
  response.write RS(\"Link\") & \"<br>\" 
  counter = counter - 1
wend

med denne:

while maxCount >= 0 AND NOT RS.EOF
  tmp = intTot * Rnd + 1
  RS.Move tmp
  if( NOT.RS.EOF ) then
    response.write RS(\"Tekst\") & \"<br>\"
    response.write RS(\"Billede\") & \"<br>\"
    response.write RS(\"Link\") & \"<br>\" 
    counter = counter - 1
  end if
wend

hjelper det ?



Avatar billede hjaelp Nybegynder
04. december 2001 - 16:25 #22
Nej, Den skriver nu:




Der opstod en Microsoft VBScript-kørselsfejl fejl \'800a01f9\'

Ugyldig eller ukvalificeret reference

Avatar billede nute Nybegynder
04. december 2001 - 16:34 #23
nå....det er jo fordi ikke RS blir åpnet :-|...men, prøv en ny ting:

<%
Set ObjConn = Server.CreateObject (\"ADODB.Connection\")
strConnDriver=\"Driver={Microsoft Access Driver (*.mdb)};\"
strConnPath=\"DBQ=\" & Server.MapPath (\"../db/data.mdb\")
objConn.Open strConnDriver & strConnPath

Dim SQL, countSQL, counter, maxCount, RS
Set RS = Server.CreateObject(\"ADODB.Recordset\")
SQL = \"SELECT * FROM tabell\"
countSQL = \"SELECT COUNT(*) AS tot FROM tabell\"
maxCount = 3

RS.open SQL, objConn, 3, 3
Set countRS = objConn.Execute( countSQL )
intTot = CInt( countRS(\"tot\") )
countRS.close
Set countRS = nothing

if( maxCount > intTot ) then
  maxCount = intTot
end if

Randomize
while maxCount >= 0 
  tmp = intTot * Rnd + 1
  Set RS = Conn.Execute( SQL )
  RS.Move tmp
  response.write RS(\"Tekst\") & \"<br>\"
  response.write RS(\"Billede\") & \"<br>\"
  response.write RS(\"Link\") & \"<br>\" 
  maxCount = maxCount - 1
wend
%>
Avatar billede hjaelp Nybegynder
04. december 2001 - 16:55 #24
Så virker det. Ville du hjælpe med de der variabler?
Avatar billede hjaelp Nybegynder
04. december 2001 - 17:04 #25
Hvis ja, så smider jeg 15 points oveni
Avatar billede hjaelp Nybegynder
04. december 2001 - 17:20 #26
Jeg skal have lavet det således, at jeg bare kan indsætte denne tekst:

<a href=\'<%=RS(\"Link1\")%>\'><img src=\"./grafik/pix/<%=RS(\"billede1\")%>\' border=\"0\" ALT=\'<%=RS(\"Tekst1\")%>\'></a>

<a href=\'<%=RS(\"Link2\")%>\'><img src=\"./grafik/pix/<%=RS(\"billede2\")%>\' border=\"0\" ALT=\'<%=RS(\"Tekst2\")%>\'></a>

<a href=\'<%=RS(\"Link3\")%>\'><img src=\"./grafik/pix/<%=RS(\"billede3\")%>\' border=\"0\" ALT=\'<%=RS(\"Tekst3\")%>\'></a>
Avatar billede hjaelp Nybegynder
04. december 2001 - 18:17 #27
Avatar billede nute Nybegynder
05. december 2001 - 09:28 #28
jeg fatter simpelthen ikke hvorfor du skal ha den over i variabler !!! hvorfor kan du ikke bare skrive ut linken og bildet direkte ????

while maxCount >= 0 
  tmp = intTot * Rnd + 1
  Set RS = Conn.Execute( SQL )
  RS.Move tmp
  response.write \"<a href=\'\" & RS(\"Link\") & \"\'><img src=\"./grafik/pix/\" & RS(\"Billede\") & \"border=\"0\" alt=\'\" & RS(\"Tekst1\") & \"\'></a>\"
  maxCount = maxCount - 1
wend

det er da dette som er det mest normale...
Avatar billede jesperhauritz Nybegynder
22. september 2004 - 09:43 #29
Hejsa jeg har sat og rodet lidt med denne func og kan ikke helt få det til at køre ! er der nogen som kan hjælpe ?

Den skriver denne fejl

Error Type:
ADODB.Recordset.1 (0x80020009)
Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.
/ringsoft/rotate.asp, line 27

<!-- #INCLUDE FILE="const/adovbs.inc" -->
<!-- #INCLUDE FILE="const/connect.asp" -->
<%
Dim SQL, countSQL, counter, maxCount, RS


Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM waterfowler"
countSQL = "SELECT COUNT(*) AS tot FROM waterfowler"
maxCount = 3

Rs.open SQL, Conn, 3, 3
Set countRs = Conn.Execute( countSQL )
intTot = CInt( countRs("tot") )
countRs.close
Set countRs = nothing

if( maxCount > intTot ) then
  maxCount = intTot
end if

Randomize
while maxCount >= 0 
  tmp = intTot * Rnd + 1
  Set RS = Conn.Execute( SQL )
  Rs.Move tmp
  Response.Write "<a href='http://" & Record("http") & "'><img src='" & Record("banner") & "' alt='" & Record("info") & "' border = '0'></a>"
  maxCount = maxCount - 1
wend
%>
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

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