[résolu] Erreur de syntaxe

Erreur de syntaxe [résolu] - SQL/NoSQL - Programmation

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
Reply

Marsh Posté le 20-07-2005 à 17:21:41   

Reply

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.


Message édité par sielfried le 20-07-2005 à 18:05:10

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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?

Reply

Marsh Posté le 21-07-2005 à 09:51:09    

Personne? :o(

Reply

Marsh Posté le 21-07-2005 à 13:05:50    

Fait voir ton instruction exacte ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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 ...


Message édité par fgiuliano le 25-07-2005 à 08:47:47
Reply

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.

Reply

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">&nbsp;
 
  <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>

Reply

Marsh Posté le 25-07-2005 à 09:01:54    

Test avec ca:

Code :
  1. WHERE ((Contact.Nom)=."$list." )


On sais jamais ca peut marcher...


Message édité par cesarr89 le 25-07-2005 à 09:02:16
Reply

Marsh Posté le 25-07-2005 à 09:17:51    

cesarr89 a écrit :

Test avec ca:

Code :
  1. WHERE ((Contact.Nom)=."$list." )


On sais jamais ca peut marcher...


 
eh non  :(  ça me met le message suivant:
Parse error: parse error in...

Reply

Marsh Posté le 25-07-2005 à 09:17:51   

Reply

Marsh Posté le 25-07-2005 à 09:21:20    

Euh oui c'est normal je me suis gourré  :D , test avec ca :

Code :
  1. WHERE ((Contact.Nom)=".$list." )


Message édité par cesarr89 le 25-07-2005 à 09:22:10
Reply

Marsh Posté le 25-07-2005 à 09:28:04    

cesarr89 a écrit :

Euh oui c'est normal je me suis gourré  :D , test avec ca :

Code :
  1. WHERE ((Contact.Nom)=".$list." )



 
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 ...
 
 :(  

Reply

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 :
  1. WHERE Contact.Nom='".$liste."'



---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 25-07-2005 à 09:55:24    

sielfried a écrit :

C'est $liste, pas $list. :/
 
Perso j'pense qu'il faut des quotes de toute façon, essaie :

Code :
  1. WHERE Contact.Nom='".$liste."'



 
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 ...

Reply

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. [:spamafote]  
 
Bon et t'aurais pas juste oublié un 's' à Contact ? [:mlc]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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. [:spamafote]  
 
Bon et t'aurais pas juste oublié un 's' à Contact ? [:mlc]


 
 :pt1cable:  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!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed