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

[/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

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.