Page 1 sur 1

requete INNER JOIN

Posté : 09 juin 2006, 18:54
par Invité
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]

Posté : 09 juin 2006, 19:40
par Cyrano
As-tu testé ta requête dans phpMyAdmin par exemple ? tu aurais le retour d'erreur plus explicite le cas échéant.

Posté : 09 juin 2006, 21:10
par Ryle
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

Posté : 12 juin 2006, 09:46
par Invité
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

Posté : 12 juin 2006, 09:49
par ouckileou
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

--inner join a lala

Posté : 12 juin 2006, 09:50
par Rkophp
produit.mar_id >>>> mar_id n'existe pas dans le fichier produit

---inner join

Posté : 12 juin 2006, 09:54
par rkop
produit.cat_id n'exsite pas non plus selon les info que tu donnes.

les quotes aussi peuvent te poser problèmes.

Posté : 12 juin 2006, 09:56
par Invité
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

Posté : 12 juin 2006, 10:02
par azerty53
tu parles de ref et d'id le probleme vient ptetre de la ??

Posté : 12 juin 2006, 10:08
par ouckileou
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.