Jointure de deux tables

cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011 - 6 déc. 2010 à 17:48
cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011 - 31 janv. 2011 à 10:39
Bonjour tout le monde, en faite je développe un petit module de gestion produit,
au niveau d'un page produit, j'ai voulu afficher des résultats a partir de deux tables différents mais qui possèdent un champ commun qui s'appelle "dci"

en première partie de la page j'affiche les résultat de premier tableau et j'ai utilisé la requête suivante :

<?php require_once('connexion.php'); ?>
<?php
$med =$_GET["id_med"];
$dc =$_GET["dci"]
?>

<?php
mysql_select_db($database_dbprotect, $dbprotect);
$query=mysql_query(" SELECT * FROM prod_med where id_med=".$med);
$j = mysql_fetch_array($query)
?>
et après chaque fois je met : <?php echo $j["nom_champ"] ;?>
et ça marche.

mais pour la deuxième partie ou je veux afficher deux champs de l'autre table je fait la jointure mais chaque fois il m'affiche la résultat d'un seul ligne mais quand je change le produit.

voila le code de requête :

<?php
mysql_select_db($database_dbprotect, $dbprotect);
$req=mysql_query("SELECT * From prod_med a, dci_desc b where a.dci=b.dci");
$m = mysql_fetch_array($req)
?>

merci beaucoup de me répondre je serai très content
j'adore codes sources.

7 réponses

darkelda Messages postés 49 Date d'inscription mardi 23 mars 2004 Statut Membre Dernière intervention 16 mai 2012
6 déc. 2010 à 19:54
SELECT * FROM prod_med INNER JOIN dci_desc ON prod_med.dci = dci_desc.dci


darkelda
Développeur PHP&MySQL / Webmaster Freelance
Suivez Moi
0
cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011
15 déc. 2010 à 12:17
merci pour la réponse mais quand même toujours elle affiche la même résultat c a d une seul ligne DCI même en change le produit vraiment c'est bizard
quelqu'un peut m'aider merciiiiiii
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
16 déc. 2010 à 11:58
Bonjour,
Une petite modification sur ta requête et ça devrais être ok :

SELECT a.*,b.* From prod_med a, dci_desc b where id_med=".$med." and a.dci=b.dci

Après si tu ne veut seulement les 2 champs de la table dci_desc tu peut utiliser ceci :
SELECT b.Champ1, b.champ2 FROM prod_med a, dci_desc b WHERE a.id_med=".$med." and a.dci=b.dci

Maintenant, si tu as une seule page de traitement, et comme tu as tes deux information dans le GET tu peut faire une seule requête :

SELECT a.*,b.Champ1, b.champ2 FROM prod_med a, dci_desc b where id_med=".$med." and a.dci=b.dci



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011
4 janv. 2011 à 19:33
merci de me donner des informations exactes
salut,
Lyle56 désolé ça marche pas, il me donne que la requête est fausse, quoi l'* je pense non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011
4 janv. 2011 à 19:56
Bon j'ai cherché un autre solution, c'est pas grave d'afficher la résultat a une autre page avec ce lien : [description.php?dci=<?php echo $j['dci']; ?> Donnees pharmacologiques]

et sur la requête je mis :

<?php
$dci =$_GET["dci"];

mysql_select_db($database_dbprotect, $dbprotect);
$query=mysql_query("SELECT * FROM dci_desc where dci=".$dci);
$j = mysql_fetch_array($query)
?>

et n'a pas données une solution, s'il vous plait aider moi merciiiiiiiiiiiiii
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
5 janv. 2011 à 09:36
Bonjour,


Lyle56 désolé ça marche pas, il me donne que la requête est fausse, quoi l'* je pense non ?


J'ai fait ça de tête, le a.* doit passer, c'est plutôt dans les conditions

la requéte devrais plutôt être celle ci :
SELECT a.*,b.Champ1, b.champ2 FROM prod_med a, dci_desc b where a.id_med=".$med." and a.dci=b.dci 


Sinon, est ce que tu as une erreur en retour ?



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
cs_bayrem90 Messages postés 13 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 31 janvier 2011
31 janv. 2011 à 10:39
Bonjour,
oui l'erreur en retour c'est
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tnhoster/public_html/description.php on line 36
0
Rejoignez-nous