8791 sujets

Développement web côté serveur, CMS

salut!
je fais une galerie photo, les adresses des images sont stockées dans ma BDD, et j'affiche les images une par une dans une page spécifique, mais je voudrais faire une navigation pour passer, je ne sais pas comment faire! je ne peux pas faire id+1 car les id image ne se suivent pas!

Merci Smiley cligne
@+
le nommage des images peut etre une piste... si tu arrives à définir une nomenclature

1_nomdelimage
2_nomdelimage
3_nomdelimage
Modifié par pareto (19 Jan 2010 - 18:50)
heu mes images sont nommées assez spécifiquement, et il est prévu d'en avoir une bonne masse! donc finir avec 892_image, ça m'arrange pas trop!

++
si les liens de tes images sont stockées dans ta base de donnée, ajoute simplement un champ id à chaque image, en auto-increment et clé primaire... ca te permettra d'avoir des id uniques et de pouvoir naviguer de la précédente à la suivante
C'est ce que j'ai dit dans mon premier message: j'ai des id mais différentes catégories: les id ne se suivent donc pas dans la meme catégorie...
++
Salut,

Baptiste08 a écrit :
j'ai des id mais différentes catégories: les id ne se suivent donc pas dans la meme catégorie...
J'en conclus que tu as un champ id et un champ catégorie (disons id_image et id_categorie). Donc pour connaître l'image suivante :
$sql = 'SELECT id_image, nom_image, src_image FROM images WHERE id_categorie = '.$id_categorie_en_cours.' AND id_image > '.$id_image_en_cours.' ORDER BY id_categorie, id_image LIMIT 1';
Si tu ne trouves rien il faut prendre la première valeur :
$sql = 'SELECT id_image, nom_image, src_image FROM images WHERE id_categorie = '.$id_categorie_en_cours.' AND id_image > 0 ORDER BY id_categorie, id_image LIMIT 1';

Pour connaître l'image précédente :
$sql = 'SELECT id_image, nom_image, src_image FROM images WHERE id_categorie = '.$id_categorie_en_cours.' AND id_image < '.$id_image_en_cours.' ORDER BY id_categorie, id_image DESC LIMIT 1';
Si tu ne trouves rien il faut prendre la valeur MAX soit en faisant un SELECT MAX, soit en faisant :
$sql = 'SELECT id_image, nom_image, src_image FROM images WHERE id_categorie = '.$id_categorie_en_cours.' AND id_image < 999999999 ORDER BY id_categorie, id_image DESC LIMIT 1';
Ok merci Smiley cligne Mais je classe mes images par date, grace à un champ où je met le date de prise de vue.... Donc le classement par id marche pas, puisqu'il peut y avoir une image plus ancienne avec un id plus récent... Vus voyez? Merci!

@+