Erreur SQL
glodybiss
Messages postés
509
Statut
Membre
-
glodybiss Messages postés 509 Statut Membre -
glodybiss Messages postés 509 Statut Membre -
Bonjour,
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
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
-
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 -
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" -
Salut,
Essaies ça : SELECT nom.* FROM client WHERE nom ="Glody" -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
Merci à MAKA54 et tous ceux qui m'ont aider c'est fait.