Problème avec request 3 tables

Eléphant du PHP | 333 Messages

09 nov. 2008, 22:16

Bonjour je tente de faire une REQUEST sur 3 tables différentes avec en références 1 champ unique

les tables sont:
- description
- all_loan
- loan

et voici mon code
$champs    = "description.code, description.nom, description.nomfr, description.genre, description.description, description.video, description.prix, description.HDDVD, loan.loanto, all_loan.user";	
	$nom_table =  " description 
					LEFT JOIN loan 
					ON description.code=loan.code
					LEFT JOIN all_loan 
					ON description.code=all_loan.code";

$result = mysql_query("SELECT ".$champs." FROM ".$nom_table." ORDER BY code DESC");  


while ($rows=mysql_fetch_array($result))
	{
Oui le résultat fonctionne mais il faonctionne TROP, il s'agit d'une liste de film, que je prètes à quelques amis, alors vous imaginez que ma liste est lister dans "description" et mes amis sur "loan" et "all_loan", mais le problème est que il m'affiche TOUT, ce que je veux dire c'es tque j'ai des doublon lorsque je liste mes films.

Si j'ai prêté un film X à 5 reprises, bien il va sortir 6 fois, 1 fois venant de "description" et 5 fois des autres tables.

Pouvez-vous m'aider

MERCI
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.

ViPHP
ViPHP | 1996 Messages

09 nov. 2008, 22:34

Essaye cela :
$champs    = "description.code, description.nom, description.nomfr, description.genre, description.description, description.video, description.prix, description.HDDVD, loan.loanto, all_loan.user";    
$nom_table =  " description,loan,all_loan 
                    WHERE description.code=loan.code
                    AND description.code=all_loan.code
                    LIMIT 1"; 
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 10 Messages

10 nov. 2008, 01:22

$nom_table =  " description 
                    LEFT JOIN loan 
                    ON description.code=loan.code
                    LEFT JOIN all_loan 
                    ON description.code=all_loan.code
GROUP BY description.code"; 
Test ça voir

Eléphant du PHP | 333 Messages

10 nov. 2008, 05:23

$nom_table =  " description 
                    LEFT JOIN loan 
                    ON description.code=loan.code
                    LEFT JOIN all_loan 
                    ON description.code=all_loan.code
GROUP BY description.code"; 
Test ça voir
Parfait, ca semble très bien fonctionner.


Petite question, comment faire si les deux TABLES son sur 2 Bdd différentes,

Ex. Description est sur la bdd "DVD" et les deux loan, all_loan sur la BDD "Usager"

Merci encore pour la première réponse
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.