|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité régulier
![]() Ludo Étudiant Inscription : décembre 2012 Messages : 47 ![]() |
Bonjour à tous, je suis depuis 2 jours sur une zone de commentaires sur un de mes articles. J'ai créer les articles qui s'affiche un par un grâce à une pagination, et là j'essais d'afficher les commentaires de ma base de données. ils s'affichent bien mais ils sont à part de ma page où sont les articles, j'essais de réunir tout ça mais je n'y arrive pas. Je suis prêt du but pourtant, enfin j'espère !
Pour commencer voici mes 2 tables: table md_clip: Code sql :
table md_comment: Code sql :
Voici une partie ma page index avec pagination (celle avec mes articles): Code :
Et ma page "brut" avec mes commentaires qui s'affichent tous avec le titre des articles: Code :
Pour plus de compréhension, voici ce que j'aimerais faire : -----Page1----- article 1 commentaire1.1 commentaire 1.2 ----------------- -----Page2----- article 2 commentaire2.1 commentaire 2.2 ----------------- -----Page3----- article 3 commentaire3.1 commentaire 3.2 ----------------- Voilà j'espere que c'est assez claire et que vous pourrez m'aider |
||||||||
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 165 ![]() |
Bonjour
ce que je vois, à priori, regarde: Code :
id_clip` int(11) NOT NULL AUTO_INCREMENT, et en suite tu dis Code :
$req = "SELECT * FROM md_clip cl JOIN md_comment co ON co.id_billet=cl.id_clip WHERE id_clip = '2'"; pour que cela puisse s'affiche comme tu veux, dans le code de ton affichage, tu dois pointer d'abord sur le premier enregistrement de la table selon ta selection, en registrant le code ou la cle primaire de l'article puis tu affiche le titre de se dernier, ensuite tu fais une recherche dans ta table commentaire pour rechercher les commentaires dont la clé ou le code est egale à la valeur enregistrée dans la variable si cela est trouvé alors il affiche un à un les commentaires trouvés. courage et bonne chance |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 965 ![]() |
Salut
Comme l'a souligné @Kitcarson23, il y a des choses qui ne vont pas dans la structure des table, du moins, il y a des compléments d'info à fournir, car j'ai du mal à comprendre. Normalement (donc en général), lorsque 2 tables sont liées entre elles comme c'est le cas ici, on a d'un coté d'une table avoir une clé primaire et dans l'autre table une clé secondaire. Les 2 champs auront non seulement le même nom, mais aussi la même structure. Exemple : table "md_clip" : id_clip int(11) NOT NULL AUTO_INCREMENT (ici c'est la clé primaire) ... etc ... les autres champs table "md_comment" : id_com int(11) NOT NULL AUTO_INCREMENT (ici c'est la clé primaire) id_clip (int(11) NOT NULL (ici la clé secondaire, même nom et même structure que id_clip de la table "md_clip") Or de ton coté on n'a pas la certitude qu'il y ait vraiment une clé secondaire dans la table "md_comment", on ne voit pas de champ "id_clip" dans cette table. Par rapport à la requête que tu as mis, de la jointure (co.id_billet=cl.id_clip), on ne peu que supposer que id_billet serait cette clé secondaire. Cependant, et si c'est réellement le cas, il y a une erreur dans la structure de ce champ, ça devrait être : id_billet int(11) -> identique à la clé primaire id_clip car les valeurs seront les mêmes. Si cette table "md_comment" n'a pas cette clé secondaire (id_clip), alors il faudrait la rajouter avec les valeurs concordantes, car c'est cela qui permettra de faire la jointure entre ces 2 tables, et donc de pouvoir récupérer les commentaires liés à chaque clip. Par ailleurs, il faudrait aussi améliorer certaines choses, entre autre certains champs de cette table "md_comment". Comme éviter de mettre des pseudos, mais plutôt mettre les identifiants des membres et là encore faire une jointure entre la table "membre" et "md_comment" pour récupérer le pseudo du membre si on en a besoin. Idem pour le champ "mail" de cette même table. C'est une erreur de procéder ainsi, car si un jour le membre qui a créé un commentaire change de mail, et bien cela va créer un bug si on venait à l'exploiter. Vu le problème, on aura alors tendance à se dire qu'il suffit de faire une requête de mise à jour sur cette table pour justement modifier le mail si le mail du profil du membre change. Ce sera alors une requête SQL de trop. Le plus simple c'est justement de ne pas mettre de champ "mail" dans cette table, mais y mettre (là encore) un champ "id_membre" et récupérer son mail en faisant une jointure sur la table du profil du membre (table membre). Bref ... il y a quelques petits truc comme ça a améliorer, sinon tu risque de galérer pour la gestion de toutes ces données. Bon courage ... surtout bonne année
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com