PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 23-02-2013 10:20:44

mastersystem60
Membre
Inscription : 23-02-2013
Messages : 9

Liaison de tables

Bonjour à tous les utilisateurs de PHPDEBUTANT

J'ai pas mal cherché sur le net, sans trouvé la réponse à ma question,
je pense que c'est juste un problème de compréhension de ma part pour ce qui est de la liaison de table :

Je réalise actuellement mon site perso qui va me permettre d'exposer mes photos, j'ai deux tables :

table -> photos
champs -> id_photos, titre_photos, cat_photos

et

table -> commentaire
champs -> id_commentaire, photo_commentaire, nom_commentaire, texte_commentaire, date_commentaire, valide_commentaire

Lorsqu'un visiteur dépose un commentaire, il rempli la table commentaire, dans le champ "photo_commentaire" j'indique l'id de ma photo pour effectuer ma future liaison.

Ma première requête que j'avais effectuée sur ma page de garde c'est celle-ci :

$requete = "select * from photos order by id_photos desc limit 0,6";

J'ai voulu mettre le nombre de commentaires par photos, voici ma nouvelle requête :

$requete = "select photos.* , commentaire.*, count(id_commentaire) as total_commentaire from photos, commentaire where photos.id_photos = commentaire.photo_commentaire group by id_photos order by id_photos desc limit 0,6";

manque de bol, les photos sans commentaire ne s'affiche plus, avez-vous une solution à mon problème ?

merci d'avance et à bientôt ++

Hors ligne

#2 23-02-2013 10:34:32

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Liaison de tables

Saluton,
Plusieurs remarques préliminaires :

  • les tables des bases de données sont composées de lignes dont les colonnes sont définies par le schéma de la table. Les champs sont à la campagne ou, à la rigueur, dans les formulaires.

  • reprendre le nom de la table dans le nom des colonnes est mal pratique et source de confusion.

Ceci posé, ce que tu appelles liaison entre les tables est connu sous le terme de jointures. Et il n'est, selon moi, de meilleure présentation des jointures que celle qu'a réalisée SQLPro.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 23-02-2013 11:58:01

mastersystem60
Membre
Inscription : 23-02-2013
Messages : 9

Re : Liaison de tables

Merci pour ta remarque pour ce qui est de l'étoile,
c'est une salle habitude que j'ai et pourtant je sais qu'il ne faut pas le faire,
c'est comme la cigarette, c'est mauvais pour la santé et on fume quand même.

Merci pour ton lien sur les jointures, j'avais déjà regardé avant de poser la question sur ce forum, mais comme je l'avais dit,
c'est plus un manque de compréhension de ma part.

à bientôt ++

Hors ligne

#4 23-02-2013 14:28:16

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Liaison de tables

mastersystem60 a écrit :

la cigarette, c'est mauvais pour la santé et on fume quand même.

Non, non, je t'assure qu'il y en a qui ne fume pas, voire refuse d'être des fumeurs passifs.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 23-02-2013 16:55:41

mastersystem60
Membre
Inscription : 23-02-2013
Messages : 9

Re : Liaison de tables

C'est bon j'ai trouvé, dur dur quand même,
J'avais jamais utilisé de jointure externe, il faut vraiment que je taf d'avantage sur mes requêtes smile

voici ma solution :

$requete = "select tof.id_photos, tof.titre_photos, count(id_commentaire) as total_commentaire from photos tof  left join commentaire on tof.id_photos = commentaire.photo_commentaire group by id_photos desc limit 0,6";

pour le nom de mes champs de table, la prochaine création je fais attention smile

Hors ligne

Pied de page des forums