afficher image suivante et précédente

afficher image suivante et précédente - PHP - Programmation

Marsh Posté le 01-05-2006 à 16:26:39    

Bonjour  
 
j'ai actuellement une image sur ma page  
 
exemple http://www.meteo-world.com/webcams/monde-122.php  
 
122 étant ici le numéro de l'id de l'image dans la base, et il change donc en fonction de l'image affichée.  
 
Je souhaiterais afficher en migniature en bas , l'image précédente et suivante par rapport à celle affichée sur la page. Comment faire ?  
 
Voilà le code le page  

Code :
  1. <?php
  2. // on se connecte à notre base
  3. $base = mysql_connect ('', '', '');
  4.     mysql_select_db('', $base);
  5. $nombreDeMessagesParPage = 1; // Le nombre de news sur chaque page
  6. // On récupère le nombre total de messages
  7. $retour = mysql_query('SELECT COUNT(*) AS nb_ville FROM webcams');
  8. $donnees = mysql_fetch_array($retour);
  9. $totalDesMessages = $donnees['nb_ville'];
  10. // On calcule le nombre de pages à créer
  11. $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
  12. if (isset($_GET['num_page']))
  13. {
  14.     $page = $_GET['num_page']; // On récupère le numéro de la page indiqué dans l'adresse (news.php?num_page=4)
  15. }
  16. else // La variable n'existe pas, c'est la première fois qu'on charge la page
  17. {
  18.     $page = 1; // On se met sur la page 1 (par défaut)
  19. }
  20. // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
  21. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  22. // lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
  23. $sql = 'SELECT id, ville, image, source FROM webcams
  24. ORDER BY id  LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;
  25. // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
  26. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  27. // on compte le nombre de news stockées dans la base de données
  28. $nb_news = mysql_num_rows($req);
  29. if ($nb_news == 0) {
  30.     echo 'Aucune news enregistrée.';
  31. }
  32. else {
  33.     // si on a au moins une news, on l'affiche
  34.     while ($data = mysql_fetch_array($req)) {
  35.         // on décompose la date  
  36.         sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
  37.         // on affiche les résultats
  38.        echo '<p id="'.$data['id'].'">'; ?>
  39. <? echo 'Webcam ' , stripslashes(htmlentities(trim($data['ville']))) ; ?>
  40. <? echo '<td><h1>'.$data['ville'].'<br/><br />
  41. ';
  42.        echo '<a href="'.$data['source'].'"><img src="'.$data['image'].'"  alt="webcam '.$data['ville'].'" border="0" style="filter:alpha(opacity=100); -moz-opacity: 1;" onMouseover="makevisible(this,0)" onMouseout="makevisible(this,1)"></a></h1></td> ';
  43.   echo '<a href="'.$data['source'].'"><h3>'.$data['source'].'</a><br/>';
  44. ?>
  45.    <?
  46.        
  47.     }
  48. // on libère l'espace mémoire alloué à cette requête
  49. mysql_free_result ($req);
  50. }
  51. mysql_close(); // Déconnexion de MySQL
  52. ?>

Reply

Marsh Posté le 01-05-2006 à 16:26:39   

Reply

Marsh Posté le 02-05-2006 à 20:06:16    

D'abord, assure toi que tu as les miniatures nécessaires.
Le plus simple est d'utiliser un logiciel de traitement d'image.
 
Tu peut ensuite utiliser le même genre de requête que celle que tu as pour récupérer les ids des images suivantes et précédantes, change juste l'offset et la limit.

Reply

Sujets relatifs:

Leave a Replay

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