Avatar billede w13 Novice
03. april 2004 - 14:46 Der er 11 kommentarer og
1 løsning

Tilfædlig data

-Hej Eksperter... Jeg er netop ved at arbjede på noget ASP og mangler nu bare en lille kode;

-Hvordan henter man en tilfældig oplysning fra databasen?
(Jeg har 2 felter... Et 'autoId' og et 'tip', som er et notat-felt!)

-På forhånd tak...
W13
Avatar billede phineas_phreak Nybegynder
03. april 2004 - 18:28 #1
nedenstående genererer et tilfældigt tal mellem 1 og 12
Du kan evt. indsætte en SQL inden der hiver antal poster ud i din DB og bruge den.



<%
randomize
randompost = int((12*rnd)+1)
%>

dit ouput vil så se sådan ud og skifter hvergang du reloader din browser:

<%= ramdompost %>

Det kan du så indsætte som kald til din db på følgende måde:
<a href="side1.asp?id="<%= ramdompost %>">Link til post <%= ramdompost %>"> her</a>
Avatar billede w13 Novice
03. april 2004 - 18:42 #2
Mit problem er så bare at den springer meget i de postede autoId's... Så det ville desværre ikke virke... Er der ikke en enkel SQL-string som henter alle poster ud fra et tilfældigt autoId?
Avatar billede eagleeye Praktikant
03. april 2004 - 21:06 #3
Hvilken database bruger du?
man kan lave en sql sætning som tager en tilfældig post. Men selve sql sætningen vil afhænge af databasen.
Avatar billede w13 Novice
04. april 2004 - 10:59 #4
-Jeg bruger Access...
Avatar billede nozio Nybegynder
04. april 2004 - 19:37 #5
Jeg bruger denne på en SQl-server - måske kan du bruge den:

select top 1 *
from tabel
order by newid()
Avatar billede w13 Novice
05. april 2004 - 11:26 #6
Men den vælger bare den nyeste, ikke?
Avatar billede eagleeye Praktikant
05. april 2004 - 11:31 #7
Access har ikke indbygget en function som MySQL og MSSQL har så man må lave det sådan her. Du skal lige rette sql sætnignen sådan det passer med dit.:


<%
randomize
R=clng(100000*rnd)
SQL = "SELECT TOP 1 * FROM tabelnavn ORDER BY rnd(-(autoID)*" & R & ")"
%>
Avatar billede w13 Novice
06. april 2004 - 11:04 #8
-Nu ser min kode således ud:
____________________________

<html>
<meta http-equiv="Content-Language" content="da">

<body bgcolor="#008080" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" text="#FFFFFF" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">

<p><font face="Verdana" size="1">
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("datbas/what.mdb")
 
randomize
R=clng(100000*rnd)
SQL = "SELECT TOP 1 * FROM tips ORDER BY rnd(-(ID)*" & R & ")"
%>
<i><%=rs("tip")%><br>
Dette er et tip!</i></font></p>

</body>
</html>
____________________________

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/tip.asp, line 16
____________________________

(Linje 16 er '<i><%=rs("tip")%><br>'!)

-Hvad gør jeg galt?
Avatar billede eagleeye Praktikant
26. august 2004 - 20:14 #9
Har du en kolonne som hedder tip i din tabel?
Avatar billede w13 Novice
26. august 2004 - 20:59 #10
Ja...
Avatar billede eagleeye Praktikant
26. august 2004 - 21:02 #11
Hov ser lige noget, umddelbart har du ikke en Set rs=Conn.Execute og en Conn.Open så prøv at rette dette:

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("datbas/what.mdb")
 
randomize
R=clng(100000*rnd)
SQL = "SELECT TOP 1 * FROM tips ORDER BY rnd(-(ID)*" & R & ")"
%>
<i><%=rs("tip")%><br>
Dette er et tip!</i></font></p>


Til dette:

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
Set Conn = Server.CreateObject("ADODB.Connection")
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("datbas/what.mdb")
conn.Open strDSN

randomize
R=clng(100000*rnd)
SQL = "SELECT TOP 1 * FROM tips ORDER BY rnd(-(ID)*" & R & ")"
set rs=conn.execute(SQL)
%>
<i><%=rs("tip")%><br>
Dette er et tip!</i></font></p>
Avatar billede w13 Novice
26. august 2004 - 22:03 #12
Hurraaa... Det virker... (Taktaktaktak...:-) Har længe haft problemet... (Er ikke just særlig stærk i ASP, men kan simpelthen ikke lade det være!)

W13 : )
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en IT-supporterelev til lokal IT på Haderslev Kaserne

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Business Relationship Manager

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Entreprise Arkitekt