Erreur SQL

glodybiss Messages postés 509 Statut Membre -  
glodybiss Messages postés 509 Statut Membre -
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

  1. maka54 Messages postés 721 Statut Membre 80
     
    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
    1. glodybiss Messages postés 509 Statut Membre 9
       
      OUAIS !!! Merciiiiiiiiii !!! ça marché gars. MAKA54 je te remeerciie
      0
  2. Roudounette
     
    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"
    0
    1. Roudounette
       
      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
      0
    2. glodybiss Messages postés 509 Statut Membre 9
       
      Merci à tous j'essaie et je vous dit quoi.
      0
    3. glodybiss Messages postés 509 Statut Membre 9
       
      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.
      0
  3. Anoen Messages postés 200 Statut Membre 25
     
    Salut,

    Essaies ça : SELECT nom.* FROM client WHERE nom ="Glody"
    0
    1. glodybiss Messages postés 509 Statut Membre 9
       
      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
      0
  4. Heremion Messages postés 564 Statut Membre 102
     
    Ou plutôt

    Select *
    FROM Client
    WHERE nom = "Glody"
    
    0
    1. Heremion Messages postés 564 Statut Membre 102
       
      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
      0
    2. glodybiss Messages postés 509 Statut Membre 9
       
      Merci? j'essaie et je vous dit quoi.
      0
    3. glodybiss Messages postés 509 Statut Membre 9
       
      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.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vordano Messages postés 1981 Statut Membre 316
     
    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
    0
  7. glodybiss Messages postés 509 Statut Membre 9
     
    Merci à MAKA54 et tous ceux qui m'ont aider c'est fait.
    0