galerie photo

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 20:27

bonjour,

Je suis en train de coder une galerie photo pour un site et je me pose une question.
Dois t'on gerer les photo par la bdd ou par des dossiers?
Je crois qu il y a un nombre maximun d'entrée sur un dossier en meme temps alors j'ai pensais que si le site reçoit un grand nombre de visiteurs, certains ne pouraient pas les voir.
Alors j'ai pensé à les gérer par le sql et la bdd mais n'esst ce pas lourd de faire ca?

MErci.

Eléphant du PHP | 94 Messages

07 sept. 2006, 21:17

oui c'est vrai qu'a force çà va faire lourd!!!

gère plutot par des dossiers!!! :wink:
~~~~$$$$www.asptt-dunkerque.com$$$$~~~~

Eléphant du PHP | 90 Messages

07 sept. 2006, 22:29

si tu veux les classer fais le avec des aray c'est plus rapide que des requetes sql

Mammouth du PHP | 19672 Messages

07 sept. 2006, 22:30

si tu veux les claser fais le avec des aray c'est plus rapide que des requetes sql
:shock: Et les informations servant à créer les tableaux en question, elles vont sortir d'où à ton avis ? Tu songes à programmer ça en dur dans le code ???
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 22:31

salut,

ok je vais penser aux array c surement mieux.
Par contre j'ai une question, car s'il y a beaucoup de photos, j'aimerai qu'elles s'affichent sur plusieurs pages et faire une pagination genre 12 photos par pages.
Je sais faire cela avec les requettes sql mais sans, je ne vois pas comment faire.
Pouvez vous me donner une piste ou une aide svp.

merci.

Mammouth du PHP | 19672 Messages

07 sept. 2006, 22:37

Ce sera le même principe sauf que la limite sera prise sur les index de ton tableau, et si on parle de pages multiples, ça sous-entend également que ton tableau sera stocké en session pour conserver la liste dans l'ordre.

Mais cette idée de tableau me semble hautement discutable, d'autant plus discutable que le motif exposé de rapidité par rapport à une requête SQL est à mon sens un peu fantaisiste :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 22:42

Oui je vois. Mais ma question 1ere etait si la gestion des photos est plus rapide si on utilise les dossiersdonc (tout ce qui va avec, opendir, readdir...) ou par une requete sql.
Je pensais qu'utiliser le sql serait lourd mais je n'en suis pas sur. Parce que y a de ça longtemps, j'avais deja créer une galerie en php en gérant les photos par des requettes cependant les photos mettaient un certain temps avant de s'afficher entierement. Remarque, le code n'etait pas optimiser et c'était une version d'essai.

Mammouth du PHP | 19672 Messages

07 sept. 2006, 22:48

Non, tu combines les deux : les images en tant que tel sont stockées dans des répertoires et les informations les concernant (dimensions, nom, chemin d'accès) stockés en base de données : de cette manière, tu peux ajouter ou retirer des images de façon très souple et faire un page/par/page sur une base de SQL avec une clause LIMIT. Tu peux même stocker un commentaire en base pour chaque photo, du coup, ta requête récupère le tout et tu construis très simplement ta page en mettant l'illustration et les commentaires qui vont avec.

En plus, tu disposeras de possibilités de tri beaucoup plus performantes qu'avec un système exclusivement fait de fichiers et de répertoires.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 22:50

OK c'est ce que je vais faire.
Merci.

Mammouth du PHP | 19672 Messages

07 sept. 2006, 22:59

Autre petit détail important : pour limiter les lenteurs de chargement, limite le nombre de photos par page d'une part, et d'autre part, fais en sorte que leur poids individuel soit très raisonnable : pour des miniatures en galerie, 5 à 10Ko maxi et tu limite au grand maximum à 10 par page : pour des versions agrandies, un poids de 30 à 50Ko est raisonnable, mais une image par page : selon ce schéma, la galerie avec miniatures cliquables ouvrant une page avec une seule grande image : ça veut dire également que chaque image existe en deux versions avec le même nom mais dans des répertoires différents, tu n'utilises pas une grande image en mettant des dimensions articifiellement plus petites pour la galerie, ça ne réduirait pas le poids et ça ralentirait pas mal le chargement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 23:13

Voila exactement ce que je cherchais. Mais alors la j'ai une autre question.
La galerie photo va etre alimentée par les internautes donc si je fais le principe de galerie que tu viens de decrire, les gens vont mettre les photos qu'ils ont pris avec leur appareils photos.(Bien entendu, je peux autoriser l'upload de photos en donnant une taille max et si la photo est trop grosse, la personne ne pourra mettre la photo.) Par contre, jamais personne quand il met une photo sur un site, met 2 versions de sa photo(a savoir une miniature et une grande.)Alors comment faire pour avoir une miniature à partir de l'orriginale. Existe t il une librairie qui sert à ça. Comme ça, je n'aurai qu'a coder une fonction qui s'occupe de faire un double de la photo uploadée. et mon problème sera terminé.

Mammouth du PHP | 19672 Messages

07 sept. 2006, 23:39

En fouillant un peu, tu devrais pouvoir trouver une librairie disponible oui, utilisant les fonctions PHP utilisant l'extension GD pour ré-échantilloner les images et à partir d'un original créer deux images dont une miniature mais dans les deux cas qui rentre à l'intérieur d'un cadre aux dimensions définies dans une configuration du code. Personnellement, je n'en connais pas en particulier, mais avec :google: tu devrais pouvoir trouver ça
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 377 Messages

07 sept. 2006, 23:41

La librairie GD répondra à tous tes besoins concernant la manipulation d'images. Elle te permet de redimensionner les images, donc même si l'internaute envoie une photo énorme (je crois que le maximum autorisé est de 4Mo), tu n'auras qu'à en faire une grande de 50k au plus et une miniature qui ne devrait pas exceder 15k
Petit scarabée deviendra grand

jeanBb
Invité n'ayant pas de compte PHPfrance

07 sept. 2006, 23:49

Merci je v regarder tout ça.

Eléphanteau du PHP | 42 Messages

27 oct. 2006, 00:47

Bonsoir,

Petit retour sur ce POST vu que je suis en train de me monter une galerie WEB avec pagination pour mes photos.

Personnellement, je pense que les accès à la BDD seront plus rapides que de lister un répertoire.

A tester mais en mettant une série de 50 photos de plusieurs mégas dans un répertoire (Ca dépend de ce que tu proposes à l'internaute, galerie haute déf, simple visualisation etc. Les miennes sont "lignts" pour éviter l'utilisation frauduleuse) tu auras des temps d'accès disque qui vont ralentir ton application/site WEB.

Bien évidemment si tes photos ne font que quelques 10aines de ko, le problème ne se pose même pas.

Bonne soirée.

Patrick