Vous n'êtes pas identifié(e).
Pages :: 1
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
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.
il faut veiller à ne pas réactiver la guerre des étoiles.
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
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
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
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
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
Hors ligne
Pages :: 1