c.klouchi Posté 11 Février 2006 Posté 11 Février 2006 bonsoir à tous, Je cherche à joindre 2 table SQL qui ont un champs commun TABLE1 et TABLE2 Ces 2 tables ont un champs avec le même nom et le même contenu qu'ont nommera champs_commun Je voudrais afficher tous les résultats commun mais je n'y parviens pas. J'ai essayé ce code <?php$sql = 'SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.champs_commun=TABLE2.champs_commun'; // on exécute cette requête$resultat = mysql_query($sql) or die();// on fait une boucle qui va faire un tour pour chaque enregistrementwhile($data = mysql_fetch_assoc($resultat)) {// echo ' '.$sql.' <br />';echo ''.$data['champs_commun'].'<br />'; }/ on ferme la connexion à la base de données.mysql_close ();?>
TheRec Posté 11 Février 2006 Posté 11 Février 2006 Bonsoir, il faut utiliser la clause JOIN, voici un explicatif de cette clause avec exemples (mais en anglais) : http://www.w3schools.com/sql/sql_join.asp A toi de voir s'il te faut une jointure gauche, droit, simple, ... Dans la plus part des car un "LEFT OUTER JOIN" sera suffisant. Tu noteras qu'il n'y a pas besoin d'utiliser une clause WHERE pour effectuer la jointure, bien que dans une certaine logique c'est le procédé qui est utilisé.
c.klouchi Posté 11 Février 2006 Auteur Posté 11 Février 2006 Bonsoir, J'ai essayé avec l'article indiqué mais je pense que mes requêtes sont correctes, le truc c'est que mes echo ne fonctionnent pas et j'ai des erreurs Unable to save result set En fait, c'est que la boucle doit peut-être être fait d'une autre manière lorsqu'on travaille sur 2 table non ?
dièse Posté 11 Février 2006 Posté 11 Février 2006 (modifié) Unable to save result set Une de tes tables doit avoir un problème. Si tu utilises phpmyadmin tu peux réparer tes tables à partir de l'onglet "opérations" sinon il faut utiliser la commande REPAIR TABLE... Ensuite la requête suivante ne devrait générer aucune erreur : $sql = 'SELECT TABLE1.champs_commun FROM TABLE1, TABLE2 WHERE TABLE1.champs_commun=TABLE2.champs_commun'; Modifié 11 Février 2006 par dièse
c.klouchi Posté 12 Février 2006 Auteur Posté 12 Février 2006 Bonjour, J'ai vérifié, analysé et optimisé mais tout semble correct à ce niveau là !
robinsonvendredi Posté 12 Février 2006 Posté 12 Février 2006 Je voudrais afficher tous les résultats communs <{POST_SNAPBACK}> 'SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.champs_commun=TABLE2.champs_commun'
c.klouchi Posté 12 Février 2006 Auteur Posté 12 Février 2006 Merci de l'aide, voici ce que j'obtiens Warning: mysql_query(): Unable to save result set in .... on line 8 qui correspond à $resultat = mysql_query($sql) or die();
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant