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 ! ! !
Annonceindlæg fra Computerworld it-jobbank
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!!
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 %>
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.
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?
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 ?
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
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
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
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
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 )
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.)
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 ?
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\"
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
04. december 2001 - 15:10
#15
feilen henviser til en eller annen linje...hva ligger i den linje ?
04. december 2001 - 15:18
#16
Den henviser til linien: response.write RS(\"Tekst\") & \"<br>\"
04. december 2001 - 15:20
#17
heter din kolonne \"Tekst\" ??
04. december 2001 - 15:27
#18
Ja, det gør den.
04. december 2001 - 15:29
#19
og hvis ditt recordset objekt heter RS, så er det ingen feil i den linje...
04. december 2001 - 16:16
#20
Det skriver den nu, at der er? Kan du hjælpe mig, med de der variabler?
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 ?
04. december 2001 - 16:25
#22
Nej, Den skriver nu: Der opstod en Microsoft VBScript-kørselsfejl fejl \'800a01f9\' Ugyldig eller ukvalificeret reference
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 %>
04. december 2001 - 16:55
#24
Så virker det. Ville du hjælpe med de der variabler?
04. december 2001 - 17:04
#25
Hvis ja, så smider jeg 15 points oveni
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>
04. december 2001 - 18:17
#27
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...
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
%>