Erreur SQL

Bonjour,

Erreur SQL !
SELECT nom(*) FROM 'client' WHERE nom ="Glody"
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) FROM 'client' WHERE nom ="Glody"' at line 1


C'est l'erreur qui apparait quand j'essaie de vérifier si l'utilisateur demander existe déjà dans la base des données ou pas.

Voici mon code en PHP

 <?php
 
   $serveur = getenv("SERVER_NAME"); 
   $chez_moi=($serveur=="localhost"); 

   if($chez_moi)include_once 'cfg.php';
else include_once 'cfg2.php';   
   
    if (isset($_POST['Enregistrer']) && $_POST['Enregistrer'] == 'Enregistrer') { 
	
     if ((isset($_POST['nom']) && !empty($_POST['nom'])) &&  (isset($_POST['prenom']) && !empty($_POST['prenom'])) &&  (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['matricule']) && !empty($_POST['matricule']))  ) { 
	 
        if ($_POST['pass'] != $_POST['pass_confirm']) { 
           $erreur = 'Non concordance des passwords fournis.'; 
        } 
       else  { 
        $base = mysql_connect (DB_HOST, USER_NAME, PASSE_WORD); 
       mysql_select_db (DATA_BASE, $base); 
          
		$sql = 'SELECT nom(*) FROM 'client' WHERE nom ="'.mysql_escape_string($_POST['nom']).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        $data = mysql_fetch_array($req); 
           
          if ($base [0] == 0) { 
             $sql = 'INSERT INTO 'client' ('id', 'nom', 'prenom', 'pass', 'matricule', 'date')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['matricule']).'","'.date('Y-m-d h:i:s').'")'; 
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
   
                session_start(); 
               $_SESSION['nom'] = $_POST['nom']; 
                header('Location: '.PAGE_PRIVATE.''); 
                exit(); 
             } 
             else { 
                $erreur = 'Cet utilisateur existe deja dans le systeme'; 
             } 
          } 
       } 
       else { 
          $erreur = 'Au moins un des champs est vide.'; 
       }  
    }  
    ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>Ajout nouvel agent | Support AppManga Cybernet </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div id="boxAgent">
<form action="" method="post" name="form1" id="form1">
          <table width="350" border="0" class="left">
 <?php
   if (isset($erreur)) {
   echo '<div id="info" class="error">'.$erreur.'</div><!--error-->';
     } ?> 
     <h3>Nouveau Client</h3> 
        
            <tr> 
              <td class="td">Nom</td>
              <td> <input type="text" name="nom" class="input_ajout_agent"  value="<?php if (isset($_POST['nom']))  echo htmlentities(trim($_POST['nom'])); ?>" ></td>
            </tr>
            
            <tr>
                     
              <td>Prenom</td>
              <td >
                  <input type="text" name="prenom"  class="input_ajout_agent" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" ></td>   
            </tr>
            
               <tr> 
               <td>Mot de passe</td>
              <td >
                  <input type="password" name="pass"  class="input_ajout_agent" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>" ></td>   
            </tr>
            
 <tr>
    <td>Confirmer</td>
              <td >
                  <input type="password" name="pass_confirm" class="input_ajout_agent"  value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>" ></td>   
            </tr>
            
            
               <tr>
                          <td>Matricule</td>
                     <td> <input type="text" class="input_ajout_agent"  name="matricule" value="<?php if (isset($_POST['matricule'])) echo htmlentities(trim($_POST['matricule'])); ?>"></td>
            </tr>
   
            
             <tr> 
              <td>Fonction</td>
              <td><input type="text" name="fonction"  class="input_ajout_agent"  value="<?php if (isset($_POST['fonction'])) echo htmlentities(trim($_POST['fonction'])); ?>" ></td>
            </tr>
                 
            <tr> 
                         <td></td>
                         <td><input type="submit" name="Enregistrer" class="submi" value="Enregistrer" /></td>
            </tr>
			</table>
         
</form></div>
</body>
</html>


6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    1- Pour eviter des doublons de nom tu met un clé unique sur ton champs nom dans la table client.

    2- Ton test est faux

    $sql = 'SELECT nom(*) FROM 'client' WHERE nom ="'.mysql_escape_string($_POST['nom']).'"'; 
            $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
            $data = mysql_fetch_array($req); 
               
              if ($base [0] == 0) { 


    il faut faire comme cela :

    $sql = 'SELECT count(*) as nb FROM client WHERE nom ="'.mysql_escape_string($_POST['nom']).'"'; 
            $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
            $data = mysql_fetch_array($req); 
               
              if ($data['nb'] == 0) { 


    ou nb est un alias de nombre d'enregsitrement et data ta ligne en base de données
    1. OUAIS !!! Merciiiiiiiiii !!! ça marché gars. MAKA54 je te remeerciie
  2. Bonjour,

    Je pense que le souci peut être lié au simple cote sur la table intérrogée.

    'client'.

    Essayer de faire en sorte que la requête soit :

    SELECT nom(*) FROM client WHERE nom ="Glody"
    1. Non, c'est :

      SELECT count(nom) from client WHERE nom="Glody".

      Pour compter le nombre de nom qui ressorte avec Glody. Normalement un, si la requête est faite sur la clé primaire de la table CLIENT
    2. Merci à tous j'essaie et je vous dit quoi.
    3. Salut ! j'ai essayé avec cette méthode le script fonctionne sauf qu'il enregistre directement dans la base des données sans vérifié si l'utilisateur existe ou pas.
  3. Salut,

    Essaies ça : SELECT nom.* FROM client WHERE nom ="Glody"
    1. Voilà ce qu'il me donne avec votre méthode :
      Erreur SQL !
      SELECT nom. * FROM client WHERE nom ="Glody"
      Unknown table 'nom'

      Donc la table Glody n'exista pas
  4. Ou plutôt

    Select *
    FROM Client
    WHERE nom = "Glody"
    
    1. ou même
      Select count(*)
      from Client
      where nom = "Glody"


      qui te permettrait de savoir combien il y en a qui portent le meme nom
    2. Merci? j'essaie et je vous dit quoi.
    3. Salut ! j'ai également essayé avec votre méthode le script fonctionne sauf qu'il enregistre directement dans la base des données sans vérifié si l'utilisateur existe ou pas.
  5. bonjour,

    est ce que tu as testé le nombre d'occurrence de "glody" ? parce que si ca ne test pas, c'est peut être parce que tu ne lui a pas demandé de tester
    1. Merci à MAKA54 et tous ceux qui m'ont aider c'est fait.