Requête sql

WRInaute discret
Salut, :D :D

J'ai réalisé une galerie photos en php. J'aimerais stocker les chemin des images dans la BDD.

J'ai deux tables : album et image

Voici leur structures :

album

id_album (int(11) autoincrement)
album_name (varchar)

image

id_image (int) auto increment
id_album (valeur qui est censé venir dans la table album ???
name_image (varchar)

Voici ma question :

comment dois-je gérer les clés primaires et champ unique afin que le lien entre les deux tables soit effectif ?

Merci à tous.

John :D
 
WRInaute accro
Pas tout saisi...

Clé primaire :
id photo
id album

Champs unique
name photo
name album

Index supplémentaire :
id album de la table des photo.

Tu affiches ensuite les name phot de la table photo ou album demandé et id album.
 
WRInaute discret
J'ai peut être pas été assez clair. J'ai quelques lacunes en ce qui concerne les bases de données.

j'ai deux tables:

La table Album et la table Image.

Un album contient plusieurs images.

Table Album

id_album (CLE PRIMAIRE)
album_name (champ commun aux deux tables)


Table Image

id_image (CLE PRIMAIRE)
album_name (champ commun aux deux tables)
name_image

1) est-ce que cette structure me permettra de récupérer par ex. tous les images liées à un album ?
2) lorsque je vais créer de nouveaux albums, comment faire en sorte que le champ "album_name" soit aussi rempli dans la table Image ?

Suis-je plus clair ?

John
 
WRInaute accro
Il faut éviter de faire des clés étranges texte. Tu devrais donc avoir un id_album dans ta table Image, qui te permettra de faire la jointure entre les deux. Et ainsi tu pourras faire ce que tu demandes.
 
WRInaute discret
Voilà , j'ai ajouté un champ id_album dans la table Image.

Mais il y a autre chose que je ne comprends pas bien.

Lorsque je vais créer de nouveaux albums dans la table Album, le champ id_album va s'incrémenter automatiquement. Mais dans la table Image, le champ id_album n'aura pas la même valeur que dans la table Album.

Donc comment se passerait une requete INSERT ? Devrais-je faire deux requete séparées ? Je ne vois pas bien. Pourrais-tu me donner un exemple très concret avec mes deux tables stp ?

Merci :D
 
WRInaute accro
Exact, lapinou.

Id album et non name album dans la table des images.

Pour la suite je ne peut que te conseiller de faire un tour sur les sites expliquant comment créer et exploiter des requêtes php/sql.

Parce que faire ce que tu demandes est le BAba
 
WRInaute accro
Rod la Kox a dit:
Pour la suite je ne peut que te conseiller de faire un tour sur les sites expliquant comment créer et exploiter des requêtes php/sql.
Oui

Une petite piste: left join

(Au passage, vive CakePHP où je ne m'en soucie plus :) )
 
WRInaute discret
Tous les tutos que j'ai lu ne parlent pas de mon cas. Je veux juste avoir un exemple concret simple avec un champ commun.
Je sais pas quoi faire de ce champ id_album.
 
WRInaute accro
Tout dépend comment est fichu ton interface de saisie. Si tu as tout mis sur la même page, alors lors de la création d'une galerie, tu effectues déjà la requête qui insère la galerie en base, puis tu récupères l'id de celle-ci (mysql_last_insert_id est ton ami) pour ajouter les données dans ta seconde table.

Un tuto complet ici : http://photo.stereo.free.fr/tutoriel-album-photos-php-mysql/code-album-intro.php

Et vu que tu sembles avoir quelques soucis avec les bases de PHP : http://www.phpdebutant.org/
 
Discussions similaires
Haut