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

Antwort per Email an