8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

comme déjà expliqué dans un précédent post, je débute en PHP-Mysql et j'essaye de faire à titre d'exercice un site pour agence immobilière.

Je bute sur un point.

J'ai une table biens qui contient les différentes biens à vendre, louer… et je souhaite que l'on puisse introduire autant d'image du bien que l'on veut.

J'aimerais quelques conseils sur :
1° comment faire en sorte que l'on puisse enregistrer un nombre indéterminé d'images par bien
comment se présenterait cette table?
2° comment faire en sorte qu' une image soit l'image principale du bien qui apparaîtrait lorsque l'on affiche tous les biens disponibles. Pour ce point, j'avais pensé mettre un champ "image_princ" avec la valeur 1 pour "oui" et 0 pour "non".

Voilà avez-vous des conseils à me donner.

D'avance merci à tous
Salut,

si le nombre d'image est indéterminé tu rajoutes 2 tables. c'est le principe des tables pivots.

tu as une table image qui décrit ton image. ça peut se résumer a un id et un chemin vers l'image.

et puis tu as une table pivot. appelons là image_bien.

avec 2 champs id un reprenant l'id_image et l'autre l'id_bien.

+ ton autre champs image_princ qui vaut ce que tu as dit. je le mettrais sur image_bien pour plus de souplesse.
Modifié par CPascal (05 Apr 2010 - 10:27)
Hello,

il y a plusieurs façons de faire... Perso je serais parti sur :

table biens
* id_bien (clef primaire auto_increment)
* ...

table biens_photos
* id_photo (clef primaire auto_increment)
* id_bien (clef étrangère)
* chemin_image
* image_princ (booléen 1 / 0)
* ...

Cela oblige à gérer l'unicité de image_princ côté PHP mais ça simplifie à priori la gestion de l'affichage de toutes les images. On pourrait aussi faire :

table biens
* id_bien (clef primaire auto_increment)
* id_img_principale
* ...

table biens_photos
* id_photo (clef primaire auto_increment)
* id_bien (clef étrangère)
* chemin_image
* ...
Hello CPascal et Heyoan,

merci pour vos réponses à chacun. Je vais essayer chacune des vos solutions et voir laquelle est la plus facile à gérer.

Merci pour vos conseils en tout cas.