webForumDet fria alternativet

slumpmässigt skämt

ASP

10 svar · 275 visningar · startad av SprayMaphia

Medlem sedan jan. 2004128 inlägg
Frågan#1

jag har en access databas som heter jokes.mdb

tabellen med skämt heter joke

nu vill jag veta hur man kan göra ett script som slumpmässigt väljer ut ett av id'na och kör Response.Write på (så att joke - som kolumnen heter med skämt - blir utskrivet)

tack på förhand

Medlem sedan jan. 20032 285 inlägg
#2

Nåja, jag har ju inget bättre att göra. ;)

Set objConn = Server.reateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("jokes.mdb")
intAntal = objConn.Execute("SELECT COUNT(*) FROM joke")(0)

Randomize
blnOK = False

Do Until blnOK
  intSlump = Int(intAntal * Rnd()) + 1
  strSQL = "SELECT joke FROM joke WHERE id = " & intSlump
  Set objRS = objConn.Execute(strSQL)

  If NOT objRS.EOF Then blnOK = True
Loop

Response.Write(objRS(0))
Set objRS = Nothing
objConn.Close : Set objConn = Nothing

Du måste dok ha en räknare som heter ID i din tabell. :)

/red Välkommen till wF! :D

Medlem sedan jan. 2004128 inlägg
#3

ja det är klart jag har =P

SÅÅ noobig är jag inte =P

Medlem sedan jan. 2004128 inlägg
#4

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/skratt.asp, line 15

Medlem sedan jan. 20032 285 inlägg
#5

Hur ser hela din kod ut? Och vilken rad i den är rad 15? :)

Medlem sedan jan. 2004128 inlägg
#6

<html>

<head>
<meta http-equiv="Content-Language" content="sv">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>-</title>
</head>

<body style="font-family: verdana; font-size: 10px" link="#000000" vlink="#000000" alink="#000000">
Ett gott skratt<br>
<%

det jag fick av dig

%>
</body>

</html>

Medlem sedan jan. 20032 285 inlägg
#7

Ajdå, hade visst missat ett C! ;)

<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>-</title>
</head>

<body style="font-family: verdana; font-size: 10px" link="#000000" vlink="#000000" alink="#000000">
Ett gott skratt<br>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("jokes.mdb")
intAntal = objConn.Execute("SELECT COUNT(*) FROM joke")(0)

Randomize
blnOK = False

Do Until blnOK
  intSlump = Int(intAntal * Rnd(3)) + 1
  strSQL = "SELECT joke FROM joke WHERE id = " & intSlump
  Set objRS = objConn.Execute(strSQL)

  If NOT objRS.EOF Then blnOK = True
Loop

Response.Write(objRS(0))
Set objRS = Nothing
objConn.Close : Set objConn = Nothing
%>
</body>
</html>
Medlem sedan jan. 2004128 inlägg
#8

tack det funkade perfekt.. det var jag som gjorde fel...

Medlem sedan juli 20011 084 inlägg
#9

Tänk bara på att om du någon gång slänger ett skämt mitt i(dvs inte senaste id:et) Så kommer den ibland försöka hämta den posten som inte finns med et id:et som inte finns.

Medlem sedan jan. 20032 285 inlägg
#10

mozilla skrev:

Tänk bara på att om du någon gång slänger ett skämt mitt i(dvs inte senaste id:et) Så kommer den ibland försöka hämta den posten som inte finns med et id:et som inte finns.

Om jag har förstått dig rätt så är det just det jag använder loopen till:

Do Until blnOK
  intSlump = Int(intAntal * Rnd(3)) + 1
  strSQL = "SELECT joke FROM joke WHERE id = " & intSlump
  Set objRS = objConn.Execute(strSQL)

  If NOT objRS.EOF Then blnOK = True
Loop
Medlem sedan juli 20011 084 inlägg
#11

aha, ledsen läste inte igenom din kod, utan bara att du använde ID:et :r :OO :birp

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)