requete INNER JOIN

Invité
Invité n'ayant pas de compte PHPfrance

09 juin 2006, 18:54

Bonsoir

j'ai une table produit categorie marque
PRODUIT
pro_id
pro_lib

CATEGORIE
cat_id
cat_lib

MARQUE
mar_id
mar_lib
et une requete
$sql1 = mysql_query('SELECT * FROM produit INNER JOIN categorie ON categorie.cat_id=produit.cat_id INNER JOIN marque ON marque.mar_id=produit.mar_id ORDER BY cat_id ASC LIMIT 0,10');		
			while ($req1 = mysql_fetch_array($sql1))
			{
mais php me dit qu'elle fonctionne pas qu'il y a un probleme avec le mysql_fetch_array.

je pense que ca vient de la jointure.

si quelqu'un avait un avis

merci
:oops: :oops: [/code]

Mammouth du PHP | 19672 Messages

09 juin 2006, 19:40

As-tu testé ta requête dans phpMyAdmin par exemple ? tu aurais le retour d'erreur plus explicite le cas échéant.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 juin 2006, 21:10

Tu peux aussi ajouter "or die (mysql_error)" à la fin de ton mysql_query() pour qu'il t'affiche les messages d'erreurs sql...

D'après les infos que tu donnes (à moins que la description de tes tables ne soit pas complete), je dirais à vue de nez que c'est parce que tu essayes d'appeler des champs qui n'existent pas dans ta table produit

Invité
Invité n'ayant pas de compte PHPfrance

12 juin 2006, 09:46

bonjour je n'etais pas la du week end et je viens de voir vos reponses.
$sql = mysql_query('SELECT * FROM produit INNER JOIN categorie ON categorie.cat_id=produit.cat_id INNER JOIN marque ON marque.mar_id=produit.mar_id WHERE pro_ref =' .$ref. '') or die (mysql_error($sql));
	$req = mysql_fetch_array($sql);
il me met ca comme erreur !

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in D:\wamp\www\Dcp\Administration\fiche_produit.php on line 12

pourtant quand je la test sous phpmyadmin cela fonctionne tres tres bien.

j'ai fait un echo du $ref et j'ai la reference produit.

le probleme doit venir de la jointure mais cela n'aurais pas du fonctionner sous phpmyadmin
non ?

merci d'avance chers collegues

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 juin 2006, 09:49

Salut,

commence par lire ceci : http://www.phpfrance.com/forums/voir_sujet-19378.php

Tu passes un mauvais paramètre à mysql_error(), tu peux l'enlever il est facultatif
Modifié en dernier par ouckileou le 12 juin 2006, 09:51, modifié 1 fois.

Rkophp
Invité n'ayant pas de compte PHPfrance

12 juin 2006, 09:50

produit.mar_id >>>> mar_id n'existe pas dans le fichier produit

rkop
Invité n'ayant pas de compte PHPfrance

12 juin 2006, 09:54

produit.cat_id n'exsite pas non plus selon les info que tu donnes.

les quotes aussi peuvent te poser problèmes.

Invité
Invité n'ayant pas de compte PHPfrance

12 juin 2006, 09:56

oups

j'ai pas mis la structure complete :oops: :oops: :oops: :oops: honte a moi.

donc voici la structure de la table produit

pro_id
pro_lib
mar_id
cat_id

et le mysql error me donne ca:

Unknown column 'ht01' in 'where clause'

ht01 etant la reference

Eléphant du PHP | 119 Messages

12 juin 2006, 10:02

tu parles de ref et d'id le probleme vient ptetre de la ??

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 juin 2006, 10:08

Unknown column 'ht01' in 'where clause'
Cela veut dire que tu souhaite passer une valeur et qu'il prend ça pour un nom de colonne

C'est étonnant car tu as apparament mis des quotes autour.
On saurait plus si tu avais donné le code SQL de ta requête, ele code généré, celui qui est exécuté

Tu as lu le lien ?

Edit : non en fait ce n'est pas étonnant puisque les guillemets simples (quotes) délimite la chaîne qui constitue ta requête, donc elles ne sont pas prises en compte quand elles entourent la valeur.
Remplace les quotes de début et fin de chaîne par des guillemets.