Erreur SQL

Fermé
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 18 nov. 2011 à 12:09
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 18 nov. 2011 à 13:33
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

maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
18 nov. 2011 à 13:28
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
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 13:33
OUAIS !!! Merciiiiiiiiii !!! ça marché gars. MAKA54 je te remeerciie
0
Roudounette
18 nov. 2011 à 12:14
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
Roudounette
18 nov. 2011 à 12:22
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
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 12:46
Merci à tous j'essaie et je vous dit quoi.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 12:51
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
Anoen Messages postés 196 Date d'inscription mardi 10 novembre 2009 Statut Membre Dernière intervention 11 septembre 2013 25
18 nov. 2011 à 12:16
Salut,

Essaies ça : SELECT nom.* FROM client WHERE nom ="Glody"
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 12:55
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
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
18 nov. 2011 à 12:18
Ou plutôt

Select *
FROM Client
WHERE nom = "Glody"
0
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
18 nov. 2011 à 12:19
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
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 12:47
Merci? j'essaie et je vous dit quoi.
0
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 12:52
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vordano Messages postés 1682 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 20 juillet 2012 316
18 nov. 2011 à 13:02
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
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 9
18 nov. 2011 à 13:33
Merci à MAKA54 et tous ceux qui m'ont aider c'est fait.
0