PHP->Besoin d'aide pour un script de bannière

WRInaute occasionnel
Bonjour,

Pour faire un script de rotation de bannière, j'ai fais ce code qui fonctionne :
Code:
<?
include('header.inc.php');
$requete = mysql_query("SELECT * FROM demo_a_pub");
$nb_banniere = mysql_num_rows($requete);
$alea = rand(1, $nb_banniere);
$requete2 = mysql_query("SELECT * FROM demo_a_pub where id='$alea'");
while($ligne2 = mysql_fetch_array($requete2))
{
	$ban = $ligne2["banner"];
	$id = $ligne2["id"];
	echo'<a href="../click.php?id='.$id.'" target="_blank"><img src="'.$ban.'"></a>';
}
?>
Mais le problème est que si une bannière a été supprimée de la base de donnée, le script n'affiche rien.

Comment faire ?

Merci.
 
WRInaute discret
Sinon, moi j'utilise phpadsnew c'est ultra puissant pour gerer tous tes espaces, avec pondération, capping, etc.
Bref, tu geres comme tu veux tout tes emplacements / campagnes. En plus il peut automatiquement modifier le script pour compter les clics histoires de voir "chez toi" les stats affichages / clics par annonceurs
 
WRInaute passionné
Ton système est nul : Genre tu as 4 enregistrements 1 3 4 5 (le 2 a été supprimé) , tu choisis rand(1,4) donc
- le 5 ne sortira jamais
- le 2 sortira alors qu'il n'existe plus...

Solution : il faut faire le rand() par mysql :
Code:
SELECT * FROM demo_a_pub ORDER BY RAND() LIMIT 1
 
WRInaute occasionnel
Ton système est nul : Genre tu as 4 enregistrements 1 3 4 5 (le 2 a été supprimé) , tu choisis rand(1,4) donc
- le 5 ne sortira jamais
- le 2 sortira alors qu'il n'existe plus...
C'est pour ça que je postais...
Code:
<?
include('header.inc.php');
$requete = mysql_query("SELECT * FROM demo_a_pub ORDER BY RAND() LIMIT 1");
mysql_fetch_array($requete);
$ban = $requete["banner"];
$id = $requete["id"];
echo'<a href="../click.php?id='.$id.'" target="_blank"><img src="'.$ban.'"></a>';
?>
Et là, ça ne devrait pas marcher ?
 
WRInaute occasionnel
Non, en fait avec :
Code:
<?
include('header.inc.php');
$requete = mysql_query("SELECT * FROM demo_a_pub ORDER BY RAND() LIMIT 1");
$row = mysql_fetch_array($requete);
echo'<a href="../click.php?id='.$row[0].'" target="_blank"><img src="'.$row[2].'"></a>';
?>
...ça marche...
 
WRInaute passionné
Très bien comme ça, par contre évite une sélection * si tu n'a besoin que de 2 champs : tu consomme des ressources pour rien :wink:
 
Discussions similaires
Haut