Problème requête sql - PHP - Programmation
Marsh Posté le 04-07-2005 à 09:42:39
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...
Marsh Posté le 04-07-2005 à 09:47:06
skeye a écrit : La syntaxe à crochets, je suis pas sûr que ce soit valide en-dehors d'access, non? |
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"
Marsh Posté le 04-07-2005 à 09:50:05
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...
Marsh Posté le 04-07-2005 à 09:53:16
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...
Marsh Posté le 04-07-2005 à 10:15:38
Marsh Posté le 04-07-2005 à 11:30:05
La tête de la requête pour Access
Ca me rappelle mes tout débuts ça
Marsh Posté le 04-07-2005 à 11:32:17
Zzozo a écrit : La tête de la requête pour Access |
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....
Marsh Posté le 06-07-2005 à 09:56:03
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
Marsh Posté le 06-07-2005 à 09:59:41
fgiuliano a écrit : Me revoilà... |
des ` plutôt, oui.
Marsh Posté le 06-07-2005 à 10:08:33
ben en faisant ça, voilà ta tête de ma requête mais ça ne fonctionne toujours pas...
Marsh Posté le 06-07-2005 à 10:08:46
"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'" );
Marsh Posté le 06-07-2005 à 10:11:35
pas des ', des `.
Et séparément autour des noms de tables et des noms de champs, je pense.
Marsh Posté le 06-07-2005 à 10:13:35
skeye a écrit : pas des ', des `. |
oki, j'avais pas compris... Je vais essayer... et te redis les résultats....
Marsh Posté le 06-07-2005 à 10:26:08
Toujours la même chose... Pourtant ça doit bien être possible, non?
Marsh Posté le 06-07-2005 à 10:26:21
"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`" );
Marsh Posté le 06-07-2005 à 10:27:02
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...
Marsh Posté le 06-07-2005 à 11:03:09
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?
Marsh Posté le 06-07-2005 à 11:20:46
Tu l'as mise comment? entre crochets, entre ` ?
Marsh Posté le 06-07-2005 à 11:23:50
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?!
Marsh Posté le 06-07-2005 à 11:26:58
J'ai regardé un peu mieux la requête...tu devrais remplacer
Citation : |
par
Citation : couleur |
dans ton order by.
Marsh Posté le 04-07-2005 à 09:37:14
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