Je te livre un script que j'ai écrit très performant, je pense pour gérer une rotation de bannière en affectant un pourcentage d'impression à chaque régie de publicité.
Pour gérer de manière précise le pourcentage affecté à chaque régie, je m'appuie sur un compteur allant de 1 à 10 ( une sequence ) basé sur une table dont la colonne est incrémenté par LAST_INSERT_ID, ceci assure l'opération d'incrémentation de lecture en 1 passe, ce qui donne une bonne précision sur la gestion des espaces alloués à chacune des régies.
D'autre part, je m'appuie sur une table mémoire HEAP pour les performances.
Dans l'exemple ci-après, j'affecte 30% à la régie1, 30% à la régie2 et 40% à la régie3. Ce qui vous permet de définir la meilleure régie.
Vos remarques, améliorations sont les bienvenues.
@++
Alain
<?php include ("dbconnect_pub.php"); $query = mysql_query("UPDATE header_sequence SET id = LAST_INSERT_ID(id+1)"); if (!$query) { mysql_query("CREATE TABLE header_sequence (id TINYINT UNSIGNED NOT NULL) TYPE = HEAP MAX_ROWS = 1"); mysql_query("INSERT INTO header_sequence VALUES (0)"); $query = mysql_query("UPDATE header_sequence SET id=LAST_INSERT_ID(id+1)"); } $indice = mysql_insert_id(); if ($indice > 10) { mysql_query("UPDATE header_sequence SET id = LAST_INSERT_ID(1)"); $indice = mysql_insert_id(); } mysql_close(); switch($indice) { case 1 : include("regie1.php"); break; case 2 : include("regie1.php"); break; case 3 : include("regie1.php"); break; case 4 : include("regie2.php"); break; case 5 : include("regie2.php"); break; case 6 : include("regie2.php"); break; case 7 : include("regie3.php"); break; case 8 : include("regie3.php"); break; case 9 : include("regie3.php"); break; case 10 : include("regie3.php"); break; }?>