Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2007, 00h00   #1
Membre du Club
 
Inscription : mars 2007
Messages : 116
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 116
Points : 52
Points : 52
Par défaut [Conception] stockage des (noms de) photos ?

Salut,
Je suis sur un site php: il y a une série de page de présentation de projets (donc changeant souvent), avec une série de photo à chaque fois...
j'ai créé un formulaire pour ajouter/enlever des photos dans chaque projet, le script de génération de miniatures, il me reste à savoir comment référencer les photos:
  • dans une table sql (tel que x=projet y=photo ou vice-versa)
  • dans une cellule sql, en ENUM ou simplement une liste de noms en TEXT puis explode()
  • en créant à chaque fois un répertoire propre au projet et en y enregistrant les miniatures (avec un prefixe chiffré pour l'ordre p.ex.)
  • autre?
Je l'imagine dans toutes les solution mais je ne me rends pas bien compte des limites/avantages (assez débutant tout de même en php)
J'espère que j'ai été clair.
Merci de votre aide...
BlindeKinder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 00h15   #2
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

Je crois que le plus simple c'est de faire une table avec 3 champs (en supposant que tes projets soient déjà enregistrés dans une autre table)

La table :

| img_id | img_projet_id |img_url |

img_id = INT autoincrement PK
img_projet_id = INT INDEX
img_url = VARCHAR 100

C'est ce que je ferais.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 01h17   #3
Membre du Club
 
Inscription : mars 2007
Messages : 116
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 116
Points : 52
Points : 52
déjà merci.
je suis pas sûr de comprendre:

img_id me sert à quoi au juste?

dans la table des projets, il y a un id auto-incrémenté pour la référence... ce serait le même pour img_projet_id?
Et comment je trie les photos? (elles doivent apparaitre dans l'ordre choisi)

merci...
BlindeKinder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 07h40   #4
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
oui,

l'id de la table projet correspond à limg_projet_id de l'autre table (tu mets le nom de champs que tu veux)

img_id te sers si tu veux supprimer l'image par exemple

Code :
1
2
 
"DELETE FROM la_table_de_images WHERE img_id = x"
dans ce cas tu es certain de suprimer la bonne image. (le champ img_id étant autoincrement). Tu ne peux pas te référer au nom ou à l'url de l'image, au cas où il y aurait 2 images avec le même nom/url

Pour trier les images ?

C'est à dire sélectionner les images pour le même projet ?

dans ce cas :
Code :
1
2
 
"SELECT img_id, img_url FROM la_table_de_images WHERE img_projet_id = x"
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 07h42   #5
Membre Expert
 
Avatar de eric.pommereau
 
Homme ERIC POMMEREAU
Ingénieur intégration
Inscription : décembre 2004
Messages : 683
Détails du profil
Informations personnelles :
Nom : Homme ERIC POMMEREAU
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 683
Points : 1 294
Points : 1 294
+1 pour N1bus

Je ferais pareil ...

Un id pour la table photo te servira pour effacer / modifier le chemin de l'image sans ambiguïté.

Par exemple :

Code :
delete from photo where id_photo = 12;
eric.pommereau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 12h09   #6
Membre du Club
 
Inscription : mars 2007
Messages : 116
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 116
Points : 52
Points : 52
Citation:
Envoyé par N1bus Voir le message
Pour trier les images ?

C'est à dire sélectionner les images pour le même projet ?
Non, ça je comprends bien, c'est le tri dans chaque projet:

soit une requête qui me sort p.ex: projet_id = 1 , img_id = 8 9 17 20

affiche les images ainsi 8 9 17 20. Puis l'utilisateur ajoute une image:
8 9 21 17 20... comment les afficher ainsi lors d'une requête? Peut-être un champs img_ordre, avec une numérotation indépendante, mais ça se complique au niveau des requête...

C'était là mon idée de travailler avec un tableau: les clés indiquent automatiquement l'ordre, puis avec des push etc...
BlindeKinder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 12h28   #7
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
A ce moment là, tu crée un champ img_ids en VARCHAR dans ta table projet et tu fais comme tu dis avec un tableau.

par exemple pour le projet 1

img_ids = 8,9,21,17,20
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 01h53   #8
Membre du Club
 
Inscription : mars 2007
Messages : 116
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 116
Points : 52
Points : 52
Bien, merci à vous, je viens de terminer...
J'ai finalement créé une table "photos":
Code :
id_photo (auto incrémentée) | nom_projet | url_photo | texte_alt | infobulle
puis dans la table des projets, une colonne "photos" avec la liste sous forme:
que j'explode pour y insérer les nouvelles ou en retirer...
C'est plus pratique que d'avoir un colonne genre "ordre" dans la table "photos", où il faudrait à chaque insertion repousser toutes les autres... déjà que ça se fait en quatre ligne minimum en PHP...
BlindeKinder est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h39.


 
 
 
 
Partenaires

Hébergement Web