Votre question

Résolu[PHP-MYSQL] Problème avec une galerie d'image

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
11 Mai 2006 17:55:47

Bonjour,
Je vous expose mon problème.
Je souhaite réaliser une galerie d'image en PHP qui charge les images à partir d'une base de donnée MYSQL.
Je souhaiterais que sur chaque page, il ne s'affiche que 16 photos et mettre des numeros de page en bas pour afficher les 16 photos (un carré de 4x4 :-D) suivantes et ainsi de suite. Quelqu'un pourrait m'expliquer une méthode pour réaliser ceci.

Merci d'avance.

Problème résolu avec l'idée de Kymic

Autres pages sur : resolu php mysql probleme galerie image

11 Mai 2006 18:21:30

Salut,
C simple il suffit de créer une table (Html) de 4x4 et de faire une requete sur ta base pour récuperer les photos que tu veux afficher.
si c pas claire tu me le dis, et tu me dis aussi ce que t'as pas compris.
Bonne chance
11 Mai 2006 19:17:11

ouhaou la réponses super complète de celui qui est au dessus de moi me fait sourir !!!! C'est pourquoi je vais t'expliquer la démarche.


allez je suis chaud je vais te détailler sa le plus possible :

Alors dans ta base je supposes que tu stockes les chemins ou carrément le lien de tes images enfin bref peu importe en fait.

A au fait je supposes que tu connais un peu le language SQL et le language PHP ce qui à mon gout est la moindre des choses quand on se lance dans ce genre de truc.

Alors on va déja commencer par faire la pagination de tes pages.

=> Nb_Total_Image = Tu récupère le nombre total de toutes tes images : c'est à dire tous les enregistrements de ta table "Image".

=> Nb_Pages = Nb_Total_Image/16 ici on trouve le nombre de pages ( on divise par 16 par ce que tu veux 16 images par page)

Nb_Pages = arrondi au dessus(Nb_Pages )

sa c'est pour trouver un nombre entier car imagine que tu ais 20 images sa ferait 20/16 c'est à dire 1.25 pages : c'est pas top pour un nombre de page.

ICI je te donne la syntaxe php car c'est pas un truc qu'on emploi tous les jours ^^
Nb_Pages = ceil(Nb_Pages);

ensuit pour afficher les liens vers les autres pages un simple boucle va faire l'affaire :

on boucle sur le nombre de page, on fait autant de lien qu'il y a de page . Les liens vont être de la forme
images.php?page=NumeroDePage

voila bon rien de bien compliqué jusqu'à maintenant !

Voila ensuite toujours sur ta page images.php
tu regardes si la variable page est défini si oui tu stocke sa valeur dans page_courante par exemple
si non tu initialise page_courante à 1 . Ca veut dire qu'on comencera à la première page logique.

exemple : URL : page.php => on affiche la 1ere page.
page.php?page=4 => on affiche la 4 éme page


Alors apres tu réfléchi ce que je suis en train de faire pour trouver la suite..........

alors voila tu vas devoir trouver le numero de l'image par laquel tu vas commencer à les afficher en fonction de la page sur laquelle on se situe...Him je sais pas si j'ai été très clair alors voila un exemple : on arrive sur la page 1 => On affiche les 16 premières images en partant de l'image 1
on arrive sur la page 2 => on affiche les 16 images e n partant de l'image 17 .... etc etc

Un peu de math et on trouve sa comme formule :
Image_Par_Laquelle_Commence = ( page_courante - 1 ) * 16

voila maintenant on dispose de tout pour faire ta requete SQL.
allez je te la fait cette requete :
$sql = " SELECT * FROM images LIMIT Image_Par_Laquelle_Commence , 16

LIMIT a , z

a=> numero de l'enregistrement ou on commence
z => nombre d'enregistrement que l'on va prendre


Voila apres tu te débrouille pr les afficher ......
Commence déja à les afficher les une en dessous des autres apres quand sa sa marchera, essaye des les disposer un peu mieux mais si tu y arrives vraiment pas bha je t'aiderai :-P


voila j'espère avoir été clair.
Contenus similaires
12 Mai 2006 09:29:41

Salut,

Merci Kymic pour ton aide. J'ai réussi à faire ce que je voulais.
Juste un petit truc, j'ai modifié ton idée au niveau du Image_Par_Laquelle_Commence, j'ai fait un si.
si la page courante est 1 on comence par l'image 1 et sinon on fait (page_courante-1)+16 et non (page_courante-1)*16.

Merci quand même pour ton aide.
J'ai evité 3mois de recherche à rien.

Bye.
12 Mai 2006 10:41:47

Petite correction à ce que j'ai dit, il ne faut pas faire
(page_courante-1)+16
mais :
((page_courante-1)*16)+1

J'avais fait le test avec seulement deux pages mais quand on passe à trois la première solution ne fonctionne plus.
12 Mai 2006 17:03:00

dsl de te contredir mais ma solution marche.

Ton truc de faire + 1 à la fin sa ne marche pas.

en fait sa commence à 0.


donc quand ta page est 1 tu dois commencer à 0 c'est à dire à l'image numero 1.
quand ta page est 2 tu dois commencer à 16 c'est à dire à l'image numero 17.


voila c'est comme les indices d'un tableau c'est l'embrouille sa commence à 0.


donc ma formule marche pour tous les numero de page.


(Page_courante - 1 ) * NombreImageParPage
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS