Résolu[PHP-MYSQL] Problème avec une galerie d'image
Dernière réponse : dans Programmation
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
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
Lassé par la pub ? Créez un compte
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.
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.
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.
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.
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
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
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :