Per Zufallsgenerator Wert a.d. DB lesen

mR.fLopPy

Erfahrenes Mitglied
Hallo Leute!

Ich habe folgendes Problem. Ich möchte per Zufallsgenerator für eine Web-Adresse (als Text) Werbung auf meiner Homepage machen. Dafür habe ich eine Tabelle erstellt in der eine Spalte mit sämtlichen Web-Adressen von Freunden drin stehen.

Ich habe nur keine Ahnung wie ich das in ASP machen soll, dass jedes mal wenn die Seite von jmd. besucht wird für eine andere Adresse Werbung gemacht wird.

Ich danke schon mal im voraus für eure Antworten!

PS: Also das Auslesen aus der Datenbank ist für mich kein Problem, nur dass er es jedesmal aus einer anderen Zeile ausliest innerhalb meiner Web-Adressspalte funktioniert nicht so richtig.

lg
floppy
 
Zuletzt bearbeitet:

colblake

Erfahrenes Mitglied
hi,
hab mal in VB-Foren nachgeschaut,weis aber nicht ob es in ASP auch funktioniert.
Wenn du mittels Recordset ausliest, dann würde ich das so schreiben:
Code:
Dim i,zufallszahl
Randomize -Timer    'Zufallsgenerator initialisieren
i=0

WHILE NOT  rs.EOF   'Einträge in der DB zählen
	i=i+1
	rs.MoveNext
WEND

zufallszahl = (i*Rnd+1)	'Zufallszahl generieren (Rnd Zahl zwischen 0 und 1)  
i=0

rs.MoveFirst		'erstes DB-Tubel

WHILE NOT  rs.EOF
	i=i+1
	IF zufallszahl=i THEN
		'Ausgabe
		...
	END IF
	rs.MoveNext
WEND

Ganz sicher bin ich mir aber nicht .

Mfg
Col.Blake
 
Zuletzt bearbeitet:

Luzie

Erfahrenes Mitglied
Hi

bei mir funktioniert folgendes hervorragend.
Läd bei jedem Klick ein neues Banner, bzw. einen neuen Datensatz per Zufall.
Ich denke mal, ist ganz einfach, anzupassen.

Code:
<!--#include file="conn.asp" -->
<% 
Set objconn = Server.CreateObject("ADODB.Connection")
    objconn.Open xxxx
	
	Dim mybanner	
	Set mybanner = Server.CreateObject("ADODB.Recordset")
	sql = "select KursID, link, alttext from Banner where Ablaufdatum > Date()"
    mybanner.Open sql, objConn,3,3
	dim anzahl 
	anzahl = mybanner.recordCount
	if mybanner.eof then
	response.write "<img src=""../verzeichnis/banner/alternativbild.gif"" width=""180"" height=""240"" "
	else
	
Randomize Timer
Dim rndNumber
rndNumber = Int(RND *(anzahl))
mybanner.Move rndNumber

dim gruss
dim derLink
dim alttext
gruss = mybanner(1) 
derLink = "seite.asp?ID=" & mybanner(0)
alttext = mybanner(2)
with response
.write "<a href=""" & derLink & """>"
.write "<img src=""../verzeichnis/banner/" & gruss & """ width=""180"" height=""240"" "
.write "border=""0"" alt=""" & Alttext & """ "
.write "style=""border:1px solid #000066""></a>"
end with
end if

mybanner.close
set mybanner=nothing
objconn.close
set objconn=nothing
%>
 

Luzie

Erfahrenes Mitglied
Am einfachsten ist es natürlich, man löst dies direkt in der SQL

SELECT top 1 id, feld FROM tabelle order by rnd(id)

Kommt aber immer drauf an, wofür mans jetzt braucht.
 

mR.fLopPy

Erfahrenes Mitglied
Wow! Ich bin begeistert. Ich werde es es gleich mal versuchen auf meine Bedürfnisse anzupassen.

Also du meinst, dass es am einfachsten wäre die Datensätze gleich beim Auslesen der Tabelle als "Random" auszugeben?

lg
floppy
 
Zuletzt bearbeitet:

Luzie

Erfahrenes Mitglied
Hmmm..

musst mal testen.

Kann sein, dass order by rnd(feld) nicht über den odbc-Treiber funktioniert. In Access ist das Statement kein Problem.
 

mR.fLopPy

Erfahrenes Mitglied
Dickes Danke, Luzie!
Hast mir sehr geholfen, hab jetzt den Code demendsprechend angepasst und es scheint zu funktionieren. Bei jedem Refresh der Seite zeigt er ein neues Bild per Zufall an. Danke. :)

Auch bei dir muss ich mich bedanken colblake! ;-)

lg
Floppy
 

Neue Beiträge