bouton Suivant precedent pour galerie

Eléphant du PHP | 183 Messages

25 sept. 2006, 10:54

Bonjour,

Apres qlq heures (lol) jai reussi a faire une sorte de diaporama qui marche mais cependant ji est reflechi plus tard mais les id des photo pour tel rubrique de ne suivront pas forcement ...

Exemple la rubrique 6 à 7 photos les id sont 15 , 16 , 17, 22, 45, 85 , 45. car actuellement mon truc marche bien seulement si les id se suivent ... mais si il y a des id qui ne se suivent pas ou alors des image effacer les id seront Effacer et sa metra des trous dans la galerie !

Donc je voudrai savoir comment prendre c'est valeur afin de leur appliquer le bouton suivant et precendent ?

exemple : si je suis sur index.php?dest=voir_photos&id=17 le bonton précedent disparait et le bonton suivant est actif avec un lien comment index.php?dest=voir_photos&id=22

voici ceu que j'ai fait

Code : Tout sélectionner

$minid=mysql_query("SELECT min(id) FROM image WHERE rubrique=6"); $minid2=mysql_result($minid,0); $maxid=mysql_query("SELECT max(id) FROM image WHERE rubrique=6"); $maxid2=mysql_result($maxid,0); $db2=mysql_query("SELECT * FROM image WHERE id='$_GET[id]'"); $c=mysql_fetch_array($db2); $requete=("SELECT * FROM image WHERE rubrique=6"); $ret = mysql_query($requete); $nb_total=mysql_num_rows($ret); <div id="commentaire"> <? $page = isset($_GET['page']) ? $_GET['page'] : ''; if ($minid2 < $_GET[id] ) { $precedent=$_GET[id]-1; echo "&nbsp;<a href=\"?dest=voir_photos&r=$_GET[r]&id=$precedent\"> << Précédent</a>&nbsp;"; } if ($maxid2 > $_GET[id] ) { $suivant=$_GET[id]+1; echo "&nbsp;<a href=\"?dest=voir_photos&r=$_GET[r]&id=$suivant\">Suivant >></a>&nbsp;"; } ?> <br> <img src="image_up/photos_carnet/<? print $c[id] ?>.<? print $c[nom_image] ?>" > </div>

*Merci de votre aide
_________
Fabien

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 sept. 2006, 11:00

Il ne faut pas te baser sur les ids de tes photos pour gérer la pagination, mais simplement sur leur nombre.

Connaissant le nombre total de photos et le nombre de photos que tu affiches sur chaque page, tu peux facilement déterminer quelle série de photo est affichée sur quelle page.
Par exemple, si tu as 20 photos, que tu affiches 5 photos par page, tu sais que sur la première page il te faut afficher les photos 1 à 5, sur la deuxième 6 à 10, sur la troisième 11 à 15, etc.

Avec MySQL il existe une fonction LIMIT qui te permet justement de ramener x enregistrements (genre 5) à partir du n ième (genre 1, 6, 11...)

Tu n'aurais alors qu'à déterminer la page sur laquelle tu te trouves, en déduire l'enregistrement à partir du quel tu dois ramener les photos et afficher les images ramener sans te poser plus de question :)

Edit : je réalise que c'est un diaporama que tu es en train de faire et non pas une gallerie, mais le principe de la pagination reste le même, il suffit simplement d'afficher un seul élément par page ;)