Notice: Error: Column 'name' in order clause
LeorLindek
-
LeorLindel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
LeorLindel Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voila, j'ai une table "customer" qui contient ces deux colonnes (entre autres) :
customer_group_id
interest_group_id
ainsi que deux tables :
1 - customer_group_description
2 - interestt_group_description
Qui contiennent les colonnes suivantes :
1 -
customer_group_id
language_id
name
2 -
interest_group_id
language_id
name
Voici ma requête php qui doit me servir à récupérer le champ "name"
Et je me retrouve avec une ambiguïté sur le champ "name' !
Où se trouve mon erreur ?
Voila, j'ai une table "customer" qui contient ces deux colonnes (entre autres) :
customer_group_id
interest_group_id
ainsi que deux tables :
1 - customer_group_description
2 - interestt_group_description
Qui contiennent les colonnes suivantes :
1 -
customer_group_id
language_id
name
2 -
interest_group_id
language_id
name
Voici ma requête php qui doit me servir à récupérer le champ "name"
$sql = "SELECT * , CONCAT( c.firstname, ' ', c.lastname ) AS name, cgd.name AS customer_group, igd.name AS interest_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON ( c.customer_group_id = cgd.customer_group_id ) LEFT JOIN " . DB_PREFIX . "interest_group_description igd ON ( c.interest_group_id = igd.interest_group_id ) WHERE igd.language_id = '" . (int)$this->config->get('config_language_id') . "' ";
Et je me retrouve avec une ambiguïté sur le champ "name' !
Où se trouve mon erreur ?
A voir également:
- Notice: Error: Column 'name' in order clause
- Notice gratuite - Guide
- Notice chromecast - Guide
- Notice télécommande universelle grundig - Forum Téléviseurs
- Homday x-pert écouteur bluetooth notice ✓ - Forum Casque et écouteurs
- Uleway g381 notice - Forum Mobile
4 réponses
Salut,
Moi dès la première ligne j'éviterais le *
Selectionne exactement ce que tu veux : <table>.<champ>
Si tu veux tout, écris tout.
Car actuellement quand tu fais select * from...
Il va selectionner cgd.name et igd.name
Or, il ne rassemble pas deux colonnes différentes dans une seule (sauf si tu fais un UNION (ALL).
De plus, tu renomes ton champs "name". Peut-être qu'il n'aime pas ça... essaie de voir de ce côté là en tout cas...
Moi dès la première ligne j'éviterais le *
Selectionne exactement ce que tu veux : <table>.<champ>
Si tu veux tout, écris tout.
Car actuellement quand tu fais select * from...
Il va selectionner cgd.name et igd.name
Or, il ne rassemble pas deux colonnes différentes dans une seule (sauf si tu fais un UNION (ALL).
De plus, tu renomes ton champs "name". Peut-être qu'il n'aime pas ça... essaie de voir de ce côté là en tout cas...
Bonjour,
Je suis d'accord avec galou00.
Est ce que tu peux mettre le "echo" de ta requete s'il te plait ?
Je suis d'accord avec galou00.
Est ce que tu peux mettre le "echo" de ta requete s'il te plait ?
Je vais faire un essai en mettant les champs concernés plutôt que *
Voila l'appel :
Voila l'appel :
<?php echo $customer['interest_group']; ?>
Je viens donc de faire cette requête :
Et voici l'erreur engendrée :
$sql = "SELECT cgd.customer_group_id, igd.interest_group_id, cgd.name, igd.name, CONCAT( c.firstname, ' ', c.lastname ) AS name, cgd.name AS customer_group, igd.name AS interest_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON ( c.customer_group_id = cgd.customer_group_id ) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "' LEFT JOIN " . DB_PREFIX . "interest_group_description igd ON ( c.interest_group_id = igd.interest_group_id ) WHERE igd.language_id = '" . (int)$this->config->get('config_language_id') . "' ";
Et voici l'erreur engendrée :
Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN 1531_interest_group_description igd ON ( c.interest_group_id = igd' at line 6 Error No: 1064