Hallo!
Einiges zum Thema Banner:
Letztendlich selektierst Du in einer Abfrage die TOP X Banner, die nach
einem beliebigen Kriterium die meisten "offenen Posten" haben.
Tabelle:
bannerId
bannerUrl
bannerText
bannerTarget
wantedImpressions (double)
actualImpressions (double)
Mach die Statistik-Felder nicht INTEGER sondern DOUBLE. Du musst dann in
der Datenbank nicht konvertieren, wenn Du mit den Zahlen rechnest. Auch
Prozentwerte sind besser in DOUBLE-Feldern aufgehoben.
In actualmpressions z�hlst Du jede Einblendung.
Entweder setzt Du wantedImpressions auf absolute Zahlen, so dass Banner
nicht mehr eingeblendet werden, wenn diese Zahl erreicht ist, oder Du
setzt wantedImpressions auf beliebige Werte entsprechend der
prozentualen Verteilung.
Du kannst ruhig mit Prozenten arbeiten. Das ist sinnvoll, z. B. wenn man
eigene Banner in unterschiedlicher Gewichtung anzeigen m�chte.
Jetzt die erste Abfrage:
Select Top 3
bannerId, bannerUrl, bannerText, bannerTarget,
(actualImpressions / wantedImpressions) As quotientImpressions,
>From bannerTabelle, bannerId
Order By (actualImpressions / wantedImpressions)
Diese Abfrage berechnet den Quotienten. Der niedrigste Quotient hat den
h�chsten "Einblendungsbedarf", deshalb die Sortierung.
Das Recordset kannst Du nun in einer Schleife verarbeiten.
Do while not rs.EOF
Response.Write(...)
Rs.Fields("actualImpressions").value =
Rs.Update(array("actualImpressions"),_
array(Rs.Fields("actualImpressions").value + 1))
Rs.MoveNext
Loop
Dabei erh�hst Du auch den Z�hler um 1.
Egal, wie Du die "wantedImpressions" definierst (absolut/prozentual), es
werden immer Banner "nach Bedarf" eingeblendet.
Freundliche Gr��e
Joachim van de Bruck
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp