Erreur de syntaxe [résolu] - SQL/NoSQL - Programmation
Marsh Posté le 20-07-2005 à 18:04:38
$liste ? Si c'est une variable PHP (et dans un script PHP), faut encadrer ça de quotes simples.
Marsh Posté le 21-07-2005 à 08:47:16
sielfried a écrit : $liste ? Si c'est une variable PHP (et dans un script PHP), faut encadrer ça de quotes simples. |
Oui, $liste est bien une variable PHP et est dans un script PHP, mais même en mettant des simples quotes, ça me met toujours la même erreur...
Est-ce que quelqu'un a une idée?
Marsh Posté le 21-07-2005 à 13:05:50
Fait voir ton instruction exacte ?
Marsh Posté le 25-07-2005 à 08:45:53
sielfried a écrit : Fait voir ton instruction exacte ? |
Voilà, après quelques jours de congé... Mon instruction exacte:
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 WHERE ((Contact.Nom)=`$liste`) ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & '-' & [couleur client]
Si quelqu'un peut me venir en aide, ce serait vraiment génial! Merci d'avance
L'erreur que cette instruction founit est la suivante:
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 2 attendu., SQL state 07001 in SQLExecDirect in ...
Marsh Posté le 25-07-2005 à 08:49:19
Oué mais ca peut aussi venir du reste du code.....balance en un peu plus stp.
Marsh Posté le 25-07-2005 à 08:56:37
cesarr89 a écrit : Oué mais ca peut aussi venir du reste du code.....balance en un peu plus stp. |
ok, voilà tout le code de ma page. Je suis débutante alors soyez indulgents...
<html>
<head>
<title>Plan of deliveries</title>
<style type="text/css">
<!--
.Style3 {
font-size: 16px;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
}
.Style5 {font-size: 24px}
-->
</style>
</head>
<body bgcolor="#000000">
<?
$bd="TanALLData"; // identifiant dsn
$user="root"; // login
$password=""; // password
$nom_base="TanALLData.mdb";
$cnx = odbc_connect( $bd , $user, $password );
if( ! $cnx ) echo "Impossible de se connecter";
?>
<div align="center">
<table border="0" width="85%" bgcolor="#FFFFCC" height="85%">
<tr>
<td width="100%">
<div align="center">
<table border="0" width="644">
<tr>
<td valign="middle" align="center" width="70">
<p align="left"><a href="../../index.php"><img border="0" src="../../images/Home.jpg" width="26" height="15"></a></td>
<center>
<center>
<td valign="middle" align="center" width="126"><a href="Accueil_A.php"><img src="../../images/Accueil.jpg" width="124" height="20" border="0"></a></td>
<td valign="middle" align="center" width="126"><a href="Presentation_A.php"><img src="../../images/Presentation.jpg" width="124" height="20" border="0"></a></td>
<td valign="middle" align="center" width="126"><a href="Etats_A.php"><img src="../../images/EtatsActifs.jpg" width="124" height="20" border="0"></a></td>
<td valign="middle" align="center" width="126"><a href="Contact_A.php"><img src="../../images/Contact.jpg" width="124" height="20" border="0"></a></td>
<td valign="middle" align="center" width="70"></td>
</tr>
</table>
<div align="center">
<center>
<table width="696" border="0">
<tr>
<td valign="middle" align="center" colspan="4" width="696">
<script language="javascript">
function PSR_imprimer () {
var PSR_f1 = null;
var PSR_content=document.getElementById('PSR_print').parentNode.innerHTML;
var PSR_title=document.getElementsByTagName('title')[0].innerText;
if (PSR_f1) {if(!PSR_f1.closed) PSR_f1.close();}
PSR_f1 = window.open ('',"PSR_f1", "height=500,width=600,menubar=yes,scrollbars=yes,resizable=yes,,left=10,top=10" ); ;
PSR_f1.document.open();
PSR_f1.document.write("<html><head><title>" + PSR_title + "</title></head><body bgcolor='#ffffff'>"+PSR_content+"</body></html>" );
PSR_f1.document.close();
PSR_f1.document.getElementById('PSR_print').style.visibility='hidden';
PSR_f1.focus();
}
if ( window.name != "PSR_f1" && document.body.parentNode ) {
document.write ("<div align='right' id='PSR_print'><input onclick='PSR_imprimer();' type='image' src='../../images/Imprimer.jpg'></div>" );
}
</script>
<center>
<center>
<table width="696" border="0" align="center" cellspacing="4" bordercolor="#000000">
<tr>
<td colspan="3" width="443" valign="middle" align="center" bordercolor="#FFFFCC"><div align="center" class="Style3 Style5">
<div align="left">
<h2><font size="5" face="Arial, Helvetica, sans-serif">Plan of deliveries</font></h2>
</div>
</div></td>
</tr>
<tr>
<td colspan="3" width="443" valign="middle" align="center" bordercolor="#FFFFCC"><br></td>
</tr>
<tr>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Supplier</strong></font></td>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Customer</strong></font></td>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Article</strong></font></td>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Color</strong></font></td>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Total
do be delivered</strong></font></td>
<td width="116" valign="middle" align="center" bordercolor="#000000"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Balance
to deliver</strong></font></td>
</tr>
</table>
<table width="696" border="0" align="center" cellspacing="4" bordercolor="#000000">
<tr>
<td width="696" valign="middle" align="center" bordercolor="#000000" colspan="6">
<hr>
</td>
</tr>
<td width="116" valign="middle" align="center">
<?
$liste = $_POST['Fournisseurs'];
if ($liste == NULL)
{
$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]" ;
}
else
{
$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 WHERE ((Contact.Nom)=`$liste`) 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 WHERE ((Contact.Nom)=`$liste`) ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & '-' & [couleur client]" ;
}
while(odbc_fetch_row( $valeur ) ) //tant que c pas la fin de la table
{?>
<tr>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 1);?> </td>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 3);?> </td>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 8);?> </td>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 9);?> </td>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 10);?> </td>
<td width="116" valign="middle" align="center"><?echo odbc_result( $valeur, 11);?> </td>
</tr>
<td width="159" valign="middle" align="center">
<?}
?>
</table>
<hr>
</center></center>
<? echo $_POST['Fournisseurs']; ?> </td>
</tr>
<tr>
<td valign="middle" align="center" colspan="4" width="80%"><img border="0" src="../../images/Copyright01.gif" width="148" height="15"><a href=mailto:fg@y-team.ch><img border="0" src="../../images/Copyright02.gif" width="62" height="15"></a></td>
</tr>
</table>
</center>
</div>
</div>
</td>
</tr>
</table>
</div>
<?
odbc_close( $cnx); // ferme la connection
?>
</body>
</html>
Marsh Posté le 25-07-2005 à 09:01:54
Test avec ca:
Code :
|
On sais jamais ca peut marcher...
Marsh Posté le 25-07-2005 à 09:17:51
cesarr89 a écrit : Test avec ca:
|
eh non ça me met le message suivant:
Parse error: parse error in...
Marsh Posté le 25-07-2005 à 09:21:20
Euh oui c'est normal je me suis gourré , test avec ca :
Code :
|
Marsh Posté le 25-07-2005 à 09:28:04
cesarr89 a écrit : Euh oui c'est normal je me suis gourré , test avec ca :
|
Alors maintenant, il me met ça:
Notice: Undefined variable: list in ...
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] ) en trop dans l'expression '((Contact.Nom)=)'., SQL state 37000 in SQLExecDirect in ...
Marsh Posté le 25-07-2005 à 09:50:02
C'est $liste, pas $list.
Perso j'pense qu'il faut des quotes de toute façon, essaie :
Code :
|
Marsh Posté le 25-07-2005 à 09:55:24
sielfried a écrit : C'est $liste, pas $list.
|
En mettant comme indiqué ci-dessus, j'obient à nouveau l'erreur suivante:
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in ...
Marsh Posté le 25-07-2005 à 10:03:53
Ah ben oui y'avait déjà des quotes dans ta requête initiale, j'avais pas vu.
Bon et t'aurais pas juste oublié un 's' à Contact ?
Marsh Posté le 25-07-2005 à 10:11:19
sielfried a écrit : Ah ben oui y'avait déjà des quotes dans ta requête initiale, j'avais pas vu. |
Voilà, voilà, comment se prendre la tête et faire perdre du temps aux autres...
L'instruction qui fonctionne, là-voilà:
WHERE Contacts.Nom='$liste'
En tout cas, merci pour votre aide! et votre patience!!!
Marsh Posté le 20-07-2005 à 17:21:41
Bonjour à tous,
je suis en train de faire une requête sql et j'ai un petit souci de syntaxe, j'imagine. Tout d'abord voici la requête qui fonctionne correctement:
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]" )
et voici celle qui me met l'erreur suivante:
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in ...
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 WHERE (Contacts.Nom = $liste) ORDER BY Contacts.Nom, Contacts_1.Nom, Articles.Libellé, [couleur fournisseur] & '-' & [couleur client]
Merci d'avance
Message édité par fgiuliano le 25-07-2005 à 10:11:57