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:
  ç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 :
 , 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é   
 | 
 
 
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. ![[:spamafote] [:spamafote]](https://forum-images.hardware.fr/images/perso/spamafote.gif) 
  
 
Bon et t'aurais pas juste oublié un 's' à Contact ? ![[:mlc] [:mlc]](https://forum-images.hardware.fr/images/perso/mlc.gif) 
 
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...
  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