[résolu] Random page promo

Random page promo [résolu] - PHP - Programmation

Marsh Posté le 28-08-2007 à 16:14:54    

Bonjour a tous  
 
J'ai trouvé un code que j'ai adapté a mes besoins pour afficher des promos sur ma page d'accueil, comme une galerie d'images avec une lien quand on clique dessus. Voici le code de galerie.php
 

Code :
  1. CODE
  2. <?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <title></title>
  8. &lt;script type="text/javascript">
  9. <!-- 
  10. // Ouvre l'image dans une popup
  11. function ouvrirImage(url, height, width) {
  12.   window.open(url, '', 'height='+height+', width='+width +',toolbar=yes,menubar=yes,status=yes,resizable=yes');
  13. }
  14. //-->
  15. </script>
  16. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  17. </head>
  18. <body>
  19. <?php
  20. include('config_galerie.php');
  21. // on récupère le nombre d'image total
  22. $query = "select count(*) as nb from images_galerie;";
  23. $result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !" );
  24. $val = mysql_fetch_array($result);
  25. $nb_images_tot = $val['nb'];
  26. // S'il n'y a aucune image, ce n'est pas la peine de continuer
  27. if (!$nb_images_tot) {
  28.    echo "Il n'y a aucune image de référencée dans la base de données.";
  29. } else {
  30.    // on récupère les paramètres passé sur l'url
  31.    if ($_GET['image'])
  32.       $image_debut = $_GET['image'];
  33.    else
  34.       $image_debut = 0;
  35.  
  36.    $i = 0; // permet de savoir combien d'images on a mis sur la ligne;
  37.  
  38.    $query = "select * from images_galerie limit $image_debut, $nb_images_page;";
  39.  
  40.    $result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !" );
  41.  
  42. ?>
  43. <table width="100%" border="0">
  44.   <?php
  45.    while ($val = mysql_fetch_array($result)) {
  46.  
  47.       if (!($i++%$nb_images_ligne))  echo "<tr>\n";
  48.       echo "\n";
  49. ?>
  50.     <td> <a href="java script:ouvrirImage('<? echo $val['url_image_norm']?>',<? echo $val['nb_hauteur']?>,
  51.                                                                  <? echo $val['nb_largeur']?> );">
  52.      <img src="<? echo $val['url_image_mini']; ?>" alt="<? echo $val['lb_commentaire']; ?>" /> </a> </td> 
  53.      <?php
  54.       if (!($i%$nb_images_ligne)) echo "</tr>\n";
  55.    }
  56.  
  57.    if ($i%$nb_images_ligne) echo "</tr>\n";
  58.  
  59.    }
  60. ?>
  61. </p>
  62. </body>
  63. </html>


 
 
Ce code appelle un fichier config_galerie.php ou on renseigne le nombre d'images et le nombre d'images par ligne.  
Mon problème est le suivant: sachant que les adresses des images à afficher et leurs liens respectifs sont dans la base, j'aimerais faire un random pour varier les promos à chaque affichage pour faire plus dynamique  
 
J'ai essayé d'adapter ce code
 

Code :
  1. $random1 = (rand(1, 2)); //attribution d'un nbre aléatoire entre 1 et 5 (paramétrable)
  2. echo tep_image(DIR_WS_IMAGES . 'banniere/emball' . $random1 . '.jpg');


 
 
Mais je n'arrive pas a combiner random avec les liens respectifs.
 
Merci pour votre aide
 
Bonne journée
 
Stéphan


Message édité par ordipaco1 le 03-09-2007 à 21:21:51
Reply

Marsh Posté le 28-08-2007 à 16:14:54   

Reply

Marsh Posté le 28-08-2007 à 16:43:16    

Que veux tu dire, quelle est l'erreur précisément?

Reply

Marsh Posté le 28-08-2007 à 17:00:25    

Merci pour ta reponse
 
 
En fait le premier code fonctionne très bien mais il n'est pas dynamique, comme je veux afficher 4 images sur une pages et que j'ai 6 voir 7 promos il faudrait que je puisse faire un random sur l'affichage des images.  
Le code qui affiche les images est la (si je me trompe pas)
 

Code :
  1. <?php
  2.    while ($val = mysql_fetch_array($result)) {
  3.  
  4.       if (!($i++%$nb_images_ligne))  echo "<tr>\n";
  5.       echo "\n";
  6. ?>


 
Le problème c'est que je ne sais pas comment m'y prendre. Pour incerer ce fichu random ! :(
 
 


Message édité par ordipaco1 le 28-08-2007 à 17:01:51
Reply

Marsh Posté le 31-08-2007 à 21:49:20    

Salut,
 
en fait le plus simple c'est de tout faire dans ta requette :

Code :
  1. SELECT * FROM  images_galerie order by rand() limit 0, $nb_images_page;


ce que ça va faire : ça va afficher les n images prises aléatoirement dans ta bdd.
 
Ludo,

Reply

Marsh Posté le 01-09-2007 à 11:07:46    

Salut ludo
 
Merci pour ta réponse=, mais ce n'est pas le nombre d'images par page que je veux changer (puique je n'en affiche que 4), mais des images choisis aléatoirement dans ma base qui s'affichent dans mes 4 empacement.
 
Merci pour ton aide

Reply

Marsh Posté le 01-09-2007 à 11:54:16    

c'est pourtant ce qu'il te propose "order by" c'est de l'anglais et ça a un rapport avec l'ordre, pas la "quantity" [:spamafote]


---------------
The Rom's, à votre service
Reply

Marsh Posté le 03-09-2007 à 20:37:15    

Génial !!!!
ca marche  
 
J’ai fait ca :
 
À la ligne 40 j'ai remplacé
 

Code :
  1. $query = "select * from images_galerie limit $image_debut, $nb_images_page;";


Par
 
 

Code :
  1. $query = "select * from images_galerie order by rand() limit $image_debut, $nb_images_page;";


 
Désolé cybellips mais tu avais raison
 
 
Merci pour votre aide a tous
 
A tres bientôt
 
Stéphan


Message édité par ordipaco1 le 03-09-2007 à 21:20:10
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed