Page 1 sur 1

Impossible d'afficher la banniere

Posté : 06 avr. 2007, 22:19
par Sefrioui
salut!

J'ai fait un petit script pour afficher des bannieres en aleatoires, les bannieres existent au bon chemin, la table est bien faite, echo sur le nom d'image me donne son aussi, mais l'affichage se fait pas
<?php
//inclure les parametres
include ("Config_File.php");
//dossier des images
$path = "Bannieres";
//poster les vars
if(isset($_POST['img'])) $img = $_POST['img'];
else $img = '';
//date
$date = date("d/m/Y");
//connexion
$connection = mysql_connect("$dbhost", "$dblogin", "$dbpassword") or die ($ErrorConnection);
$db = mysql_select_db($dbname, $connection) or die ($ErrorDBase);
$select = "SELECT * FROM $banniere_table";
$result = mysql_query($select) or die($ErrorSelect);
$total = mysql_num_rows($result);
//on calcule le nombre total de lignes
if($total==0) 
{
//si un resultat nul on affiche une banniere par defo
echo "<div align=\"center\"><img src=\"Bannieres/banniere.gif\" class=\"imglink02\" border=\"0\" width=\"470\" height=\"90\" align=\"middle\"></div>";
}
else
{
//sinon on ressort un nombre aleatoire du nombre de lignes
srand (time());
$number=(rand()%$total);
$number++;
//on trouve la ligne ou le id hasard est le meme ke le number genere
$select2 = "select * from $banniere_table where id=$number";
echo $select2;
$res = mysql_query($select2) or die($ErrorSelect);
$banner = mysql_num_rows($res); 
 while ($data = mysql_fetch_array($res)) {
$img = $data['img'];
// on affiche notre banniere
echo "<img src=\"$path/$img\" border=\"0\" width=\"470\" height=\"90\" alt=\"$img\"></div>";
echo $img;
 mysql_close (); 
 }
 }
 ?>
si vous avez une idee ou existe l'erreur

merci

Posté : 07 avr. 2007, 04:32
par guilt92
si toutes tes variables sont correctes l'erreur ne peut venir que de l'affichage... Es tu sur de rentrer dans le while ?
Sinon tes noms d'images, récupérés dans $img contiennent bien une extension ? (.jpg par ex)...

Sinon ta méthode me semble pas très fiable, que se passe t il si tes id ne se suivent pas ? tu devrais jeter un coup d'oeil a la fonction RAND() de SQL qui te permet de tirer aléatoirement une ligne dans ta base de données, avec une syntaxe du genre :

Code : Tout sélectionner

SELECT var FROM mabase ORDER BY RAND() LIMIT 1

Posté : 07 avr. 2007, 08:55
par Expreg
echo "<img src=\"$path/$img\" border=\"0\" width=\"470\" height=\"90\" alt=\"$img\"></div>"; 
Evite ce genre de syntaxe, les antislashes c'est pas jojo :wink:
// le path :
$path = "Bannieres/"; 
echo '<img src="',$path.$img,'" border="0" width="470" height="90" alt="',$img,'" />'; 
En complément d'info, voilà une manière de faire la même chose sans base de données :
Source N°3