Also - ich hab mal überlegt ...
Die Zufälligkeit brauchst du nicht denke ich (hab ich bei meinem System auch nicht) die kommt automatisch dadurch, daß unterschiedliche User/IPs unterschiedlich oft die Seiten aufrufen etc. und dadurch werden bei den einzelnen Usern dann verschiedene Banner von unterschiedlichen Partnern angezeigt. Was man natürlich noch einbauen muß ist, daß auf einer Seite nicht zweimal der gleiche Partner und/oder Banner angezeigt wird.
So ...
also durch die Banner/Partner gehst du mit einem Banner/Partner-Index. Wenn du willst, dann kannst den auch noch IP-abhängig machen. Ich hab bei mir dann noch einen "globalen" Startindex (max=max. Partner/Banner-ID) ... also bei eingeloggtem User 1 fängst mit Banner/Partner 1 an bei User 2 mit Partner 2 usw. - so hast du ne Rotation bzw. daß nicht die Startseite immer mit den gleichen Banner/Partner anfangen.
Ich nehm jetzt mal der einfachheithalber dafür den Namen "Banner-Index".
Beim Partner hinterlegst du eine Zahl von 1 bis x ... je höher die Zahl, um so niedriger die Gewichtung - in deinem Fall wär das 1-3.
Dann bei den Bannern eine Art Gewichtungsindex, der bei jedem Aufruf hochgezählt wird. Wie hoch - das hast du beim Partner hinterlegt.
Wenn GewichtungsIndex=0 wird das Banner angezeigt. Danach 1 hochgezählt. Wenn du das nächste mal durch die Banner/Partner gehst und das nächste anzuzeigende suchst und findest für Banner/Partner 1 den GewichtungsIndex 1 - und beim Partner steht 2 - dann zählst du den Index eines hoch ... wenn beim Partner die 1 drin steht, dann setzt du den Index auf 0 ... somit wird der Banner beim nächsten Mal wieder angezeigt .... demhingegen der Banner mit dem max. GewichtungsIndex von 2 oder 3 muß noch ein oder zwei Runden aussetzen, bis er wieder angezeigt wird.
War das verständlich wie ich das meine ?
MFG,
speedy