Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2132 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème requête sql

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème requête sql

n°1139029
fgiuliano
Posté le 04-07-2005 à 09:37:14  profilanswer
 

Bonjour à tous,
Je suis en train de créer une page de mon site qui accède à une base de données et affiche suivant ma requête sql, le contenu voulu. Mais malheureusement, lorsque j'essaie d'accéder à cette page, les messages d'erreurs suivants apparaissent:
 
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\web\asie\plandeslivraisons_a.php on line 81
 
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-8\www\web\asie\plandeslivraisons_a.php on line 83

 
Il me semble, en ayant regardé un peu sur le net que c'est peut-être une erreur de syntaxe mais je ne vois pas laquelle vu que j'ai repris cette requête telle quelle depuis Access où tout fonctionne correctement.
Voilà ma requête comme écrite sur ma page internet (elle est assez énorme...):
 
<?
     $valeur = odbc_exec( $cnx, "SELECT Contacts.Nom AS Fournisseur, [Plan livraison].[Numéro fournisseur], Contacts_1.Nom AS Client, [Plan livraison].[Numéro client], Contacts_1.Groupe, Contacts_2.Nom AS Client2, [Plan livraison].[Numéro client2], Articles.Libellé AS Article, [couleur fournisseur] & "-" & [couleur client] AS Couleur, [Plan livraison].[Total à livrer], [Plan livraison].[Solde à livrer], [Plan livraison].[Pas confirmé], [Plan livraison].[En retard], [Plan livraison].[Semaine courante], [Plan livraison].[Dans 1 semaine], [Plan livraison].[Dans 2 semaines], [Plan livraison].[Dans 3 semaines], [Plan livraison].[Dans 4 semaines], [Plan livraison].[Solde à planifier], [Plan livraison].[Numéro article], [Plan livraison].[Numéro couleur], [Plan livraison].[Numéro semaine courante] FROM ((((Contacts INNER JOIN [Plan livraison] ON Contacts.Numéro = [Plan livraison].[Numéro fournisseur]) INNER JOIN Contacts AS Contacts_1 ON [Plan livraison].[Numéro client] = Contacts_1.Numéro) INNER JOIN Articles ON [Plan livraison].[Numéro article] = Articles.Numéro) INNER JOIN Couleurs ON [Plan livraison].[Numéro couleur] = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON [Plan livraison].[Numéro client2] = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & "-" & [couleur client]" );
     $query  = "SELECT Contacts.Nom AS Fournisseur, [Plan livraison].[Numéro fournisseur], Contacts_1.Nom AS Client, [Plan livraison].[Numéro client], Contacts_1.Groupe, Contacts_2.Nom AS Client2, [Plan livraison].[Numéro client2], Articles.Libellé AS Article, [couleur fournisseur] & "-" & [couleur client] AS Couleur, [Plan livraison].[Total à livrer], [Plan livraison].[Solde à livrer], [Plan livraison].[Pas confirmé], [Plan livraison].[En retard], [Plan livraison].[Semaine courante], [Plan livraison].[Dans 1 semaine], [Plan livraison].[Dans 2 semaines], [Plan livraison].[Dans 3 semaines], [Plan livraison].[Dans 4 semaines], [Plan livraison].[Solde à planifier], [Plan livraison].[Numéro article], [Plan livraison].[Numéro couleur], [Plan livraison].[Numéro semaine courante] FROM ((((Contacts INNER JOIN [Plan livraison] ON Contacts.Numéro = [Plan livraison].[Numéro fournisseur]) INNER JOIN Contacts AS Contacts_1 ON [Plan livraison].[Numéro client] = Contacts_1.Numéro) INNER JOIN Articles ON [Plan livraison].[Numéro article] = Articles.Numéro) INNER JOIN Couleurs ON [Plan livraison].[Numéro couleur] = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON [Plan livraison].[Numéro client2] = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & "-" & [couleur client]" ;  
{?>
 
Merci d'avance

mood
Publicité
Posté le 04-07-2005 à 09:37:14  profilanswer
 

n°1139033
skeye
Posté le 04-07-2005 à 09:42:39  profilanswer
 

La syntaxe à crochets, je suis pas sûr que ce soit valide en-dehors d'access, non?
Essaie une requête toute simple, pour commencer, plutôt...


---------------
Can't buy what I want because it's free -
n°1139036
fgiuliano
Posté le 04-07-2005 à 09:47:06  profilanswer
 

skeye a écrit :

La syntaxe à crochets, je suis pas sûr que ce soit valide en-dehors d'access, non?
Essaie une requête toute simple, pour commencer, plutôt...


 
Je pense que ça doit jouer car la requête suivante fonctionne correctement:
 
"SELECT PL.Num, PL.[Numéro facture], PL.[Date facture], PL.Traitée FROM PL WHERE (((PL.Traitée)=False)) ORDER BY PL.[Date facture] DESC"

n°1139038
skeye
Posté le 04-07-2005 à 09:50:05  profilanswer
 

Essaie des crochets sur un nom de table...et si ça marche essaie avec un INNER JOIN et un LEFT JOIN...bref vérifie un par un tous les éléments de ta syntaxe qui peuvent poser problème...


---------------
Can't buy what I want because it's free -
n°1139039
fgiuliano
Posté le 04-07-2005 à 09:53:16  profilanswer
 

skeye a écrit :

Essaie des crochets sur un nom de table...et si ça marche essaie avec un INNER JOIN et un LEFT JOIN...bref vérifie un par un tous les éléments de ta syntaxe qui peuvent poser problème...


 
Ok, je vais essayer comme ça alors, et je reviens faire un tour par là si ça ne fonctionne pas...

n°1139060
Zzozo
Un peu, passionément, à la fol
Posté le 04-07-2005 à 10:15:38  profilanswer
 

[:rofl]


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°1139133
fgiuliano
Posté le 04-07-2005 à 11:17:46  profilanswer
 
n°1139165
Zzozo
Un peu, passionément, à la fol
Posté le 04-07-2005 à 11:30:05  profilanswer
 


La tête de la requête pour Access  :D
Ca me rappelle mes tout débuts ça  :D


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°1139173
fgiuliano
Posté le 04-07-2005 à 11:32:17  profilanswer
 

Zzozo a écrit :

La tête de la requête pour Access  :D
Ca me rappelle mes tout débuts ça  :D


 
En fait, la base de données, je ne les pas créée, je dois avec ça me débrouiller pour faire un site internet avec accès sur cette base... Et c'est vrai que je ne m'en sors pas....

n°1141680
fgiuliano
Posté le 06-07-2005 à 09:56:03  profilanswer
 

Me revoilà...  
Alors ça fait deux jours que je n'ai pas pu m'occuper de ce problème et je me suis plongée dedans ce matin. Malheureusement, vu mon niveau en sql, je n'arrive pas du tout à m'en sortir...  :(  
Est-ce que quelqu'un pourrait me venir en aide? Si les crochets ne fonctionne pas, que dois-je mettre à la place? Des ' ?
Merci d'avance

mood
Publicité
Posté le 06-07-2005 à 09:56:03  profilanswer
 

n°1141681
skeye
Posté le 06-07-2005 à 09:59:41  profilanswer
 

fgiuliano a écrit :

Me revoilà...  
Alors ça fait deux jours que je n'ai pas pu m'occuper de ce problème et je me suis plongée dedans ce matin. Malheureusement, vu mon niveau en sql, je n'arrive pas du tout à m'en sortir...  :(  
Est-ce que quelqu'un pourrait me venir en aide? Si les crochets ne fonctionne pas, que dois-je mettre à la place? Des ' ?
Merci d'avance


des ` plutôt, oui.


---------------
Can't buy what I want because it's free -
n°1141691
fgiuliano
Posté le 06-07-2005 à 10:08:33  profilanswer
 

ben en faisant ça, voilà ta tête de ma requête mais ça ne fonctionne toujours pas...  :(

n°1141692
fgiuliano
Posté le 06-07-2005 à 10:08:46  profilanswer
 

"SELECT Contacts.Nom AS Fournisseur, 'Plan livraison.Numéro fournisseur', Contacts_1.Nom AS Client, 'Plan livraison.Numéro client', Contacts_1.Groupe, Contacts_2.Nom AS Client2, 'Plan livraison.Numéro client2', Articles.Libellé AS Article, 'couleur fournisseur' & "-" & 'couleur client' AS Couleur, 'Plan livraison.Total à livrer', 'Plan livraison.Solde à livrer', 'Plan livraison.Pas confirmé', 'Plan livraison.En retard', 'Plan livraison.Semaine courante', 'Plan livraison.Dans 1 semaine', 'Plan livraison.Dans 2 semaines', 'Plan livraison.Dans 3 semaines', 'Plan livraison.Dans 4 semaines', 'Plan livraison.Solde à planifier', 'Plan livraison.Numéro article', 'Plan livraison.Numéro couleur', 'Plan livraison.Numéro semaine courante' FROM ((((Contacts INNER JOIN 'Plan livraison' ON Contacts.Numéro = ''Plan livraison.Numéro fournisseur'') INNER JOIN Contacts AS Contacts_1 ON ''Plan livraison.Numéro client'' = Contacts_1.Numéro) INNER JOIN Articles ON ''Plan livraison.Numéro article'' = Articles.Numéro) INNER JOIN Couleurs ON ''Plan livraison.Numéro couleur'' = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON ''Plan livraison.Numéro client2'' = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, 'couleur fournisseur' & "-" & 'couleur client'" );

n°1141695
skeye
Posté le 06-07-2005 à 10:11:35  profilanswer
 

pas des ', des `.
Et séparément autour des noms de tables et des noms de champs, je pense.


---------------
Can't buy what I want because it's free -
n°1141698
fgiuliano
Posté le 06-07-2005 à 10:13:35  profilanswer
 

skeye a écrit :

pas des ', des `.
Et séparément autour des noms de tables et des noms de champs, je pense.


oki, j'avais pas compris... Je vais essayer... et te redis les résultats....

n°1141712
fgiuliano
Posté le 06-07-2005 à 10:26:08  profilanswer
 

Toujours la même chose... Pourtant ça doit bien être possible, non? :(  
 

n°1141713
fgiuliano
Posté le 06-07-2005 à 10:26:21  profilanswer
 

"SELECT Contacts.Nom AS Fournisseur, `Plan livraison`.`Numéro fournisseur`, Contacts_1.Nom AS Client, `Plan livraison`.`Numéro client`, Contacts_1.Groupe, Contacts_2.Nom AS Client2, `Plan livraison`.`Numéro client2`, Articles.Libellé AS Article, `couleur fournisseur` & "-" & `couleur client` AS Couleur, `Plan livraison`.`Total à livrer`, `Plan livraison`.`Solde à livrer`, `Plan livraison`.`Pas confirmé`, `Plan livraison`.`En retard`, `Plan livraison`.`Semaine courante`, `Plan livraison`.`Dans 1 semaine`, `Plan livraison`.`Dans 2 semaines`, `Plan livraison`.`Dans 3 semaines`, `Plan livraison`.`Dans 4 semaines`, `Plan livraison`.`Solde à planifier`, `Plan livraison`.`Numéro article`, `Plan livraison`.`Numéro couleur`, `Plan livraison`.`Numéro semaine courante` FROM ((((Contacts INNER JOIN `Plan livraison` ON Contacts.Numéro = `Plan livraison`.`Numéro fournisseur`) INNER JOIN Contacts AS Contacts_1 ON `Plan livraison`.`Numéro client` = Contacts_1.Numéro) INNER JOIN Articles ON `Plan livraison`.`Numéro article` = Articles.Numéro) INNER JOIN Couleurs ON `Plan livraison`.`Numéro couleur` = Couleurs.Numéro) LEFT JOIN Contacts AS Contacts_2 ON `Plan livraison`.`Numéro client2` = Contacts_2.Numéro ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, `couleur fournisseur` & "-" & `couleur client`" );

n°1141714
skeye
Posté le 06-07-2005 à 10:27:02  profilanswer
 

fgiuliano a écrit :

Toujours la même chose... Pourtant ça doit bien être possible, non? :(


essaie comme je te l'avais dit des requêtes plus simples utilisant les mêmes tables et les mêmes mots-clés, pour trouver de qui coince...


---------------
Can't buy what I want because it's free -
n°1141772
fgiuliano
Posté le 06-07-2005 à 11:03:09  profilanswer
 

Ok, alors j'ai fait comme tu disais et j'ai trouvé une erreur de syntaxe:
 
& "-" &
& '-' &
 
Alors l'erreur de départ n'est plus, mais par contre il me met l'erreur suivante:
 
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'Plan livraison'. Assurez-vous qu'elle existe et qu'elle est correctement orthographiée., SQL state S0002 in SQLExecDirect  
 
Et j'ai vérifié, elle existe et est correctement orthographiée. Tu aurais une idée?

n°1141797
skeye
Posté le 06-07-2005 à 11:20:46  profilanswer
 

Tu l'as mise comment? entre crochets, entre ` ?


---------------
Can't buy what I want because it's free -
n°1141802
fgiuliano
Posté le 06-07-2005 à 11:23:50  profilanswer
 

skeye a écrit :

Tu l'as mise comment? entre crochets, entre ` ?


j'ai essayé les deux mais avec `, il me remet l'erreur d'avant... Peut-être y a-t-il un problème ailleur?!

n°1141810
skeye
Posté le 06-07-2005 à 11:26:58  profilanswer
 

J'ai regardé un peu mieux la requête...tu devrais remplacer  

Citation :


`couleur fournisseur` & "-" & `couleur client`


 
par

Citation :

couleur

dans ton order by.


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème requête sql

 

Sujets relatifs
Problème de reconstruction de requete en PROCprobleme de requete
Encore un probleme de requete SQLXindice: problème requête Xupdate
[Résolu]probleme de requete sqlProblème avec requête sous MySQL
Probleme de requete sous access svp aideProblème avec requète sur 2 champs ...
[RESOLU]Problème résultat requête MySQL[Résolu] Problème ASP/SQL: erreur dans la requête
Plus de sujets relatifs à : Problème requête sql


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR