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