Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2011, 04h39   #1
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 41
Points : 13
Points : 13
Par défaut SESLECT et JOINTURES mais comment?

chers amis, merci de me répondre...
mon problème: j'ai deux tables, MESSAGES et COMMENTS. la table MESSAGES contient les colonnes(id_mess, message) et la table COMMENTS contient(id_mess, commentaire), j'explique:
1: MESSAGES.id_mess et COMMENTS.id_mess sont les mêmes sachant que chaque message de la table MESSAGES a son id=id_mess et ses commentaires repérés dans la table COMMENTS dans COMMENTS.id_mess...

2: je fait une SELECT avec Jointures, du genre:
Code :
1
2
"SELECT * FROM MESSAGES INNER JOIN COMMENTS ON MESSAGES.id_mess=COMMENTS.id_mess WHERE
conditions".
3: chaque messages peut avoir plusieurs commentaires.
4: LE PROBLÈME: je ne sais pas comment afficher un message avec ses commentaires dans ce cas, après le SELECT. Est-ce qu'il faut faire DEUX boucles WHILE?

SVP aidez-moi... merci! je veux afficher chaque message avec ses commentaires comme dans un forum. je réussit avec DEUX SELECT et DEUX BOUCLES WHILE mais avec les jointures j'ai aucune idée. MERCI...
logarithme-galiléen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 08h25   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

si je peux me permettre une remarque sur ta BDD, je te conseillerai de mettre un identifiant spécifique pour chaque commentaires et de leurs attribués un id_mess pour faire référence aux messages.

commentaire: id_com | id_mess | commentaires

Ca sera beaucoup plus simple pour manipuler des commentaires par la suite.

Après je n'ai pas compris ta questoin, est ce que tu sais exécuter une requête SQL en php? sinon regarde ceci, c'est la version rapide et simple. Sinon si tu n'es pas pressé regarde ca c'est un bon tuto sur la méthode PDO (qui pour moi est mieux que la première méthode).

Pour moi le mieux c'est de faire ca en 2 requêtes, une pour parcourir les messages (dans ta première boucle) puis dans cette boucle tu exécutes une requête qui prend comme condition l'identifiant du message et tu obtiens les commentaires.

Si c'est pas ca que tu veux (ou au moins une de ces choses ) j'ai rien compris ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 15h12   #3
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 41
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 41
Points : 13
Points : 13
merci à toi Retrokiller069... merci pour ta réponse. pour la clée primaire sur la table de commentaires il y en a; ne prends en aucun cas ma reponse en mal, c'est juste que j'ai pris l'habitude de mettre le strict minimum dans mes questions(du coup j'ai pas vu l'utilité de decrire tte la table des commentaires dans ce sujet)...
Je crois que tu as compris mon problème mais pas assez bien lu mon sujet... Le méthode que tu me propose je l'ai déjà faite et elle marche bien(et je l'ai précisé dans le sujet), sauf que utiliser une jointure est plus rapide, d'où mon choix de l'utiliser car DEUX BOUCLES WHILE paraissent LOURDES. je fais la jointure, mais le PROBLEME est que: JE NE CONNAIS pas EXTRAIRE LES RESULTATS... EX:
Code php :
1
2
3
4
5
6
$sql="SELECT * FROM publications INNER JOIN commentaires ON ... WHERE";
$ask = mysqli_query($link, $sql) ;
while($tab=mysqli_fetch_array($link, $ask))
{
  // commet extraire les chaque message avec ses commentaires et les afficher?==>c'est Là LE PROBLEME...sachant que chaque publication peut avoir plusieurs commentaires!
}

Merci encore pour vos réponses!
logarithme-galiléen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 19h51   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
je t'invite à t'intéresser à GROUP BY et lire ce tuto : LE SQL de A à Z : 4e partie - groupage et ensembles
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h10.


 
 
 
 
Partenaires

Hébergement Web