Page 1 sur 1

Problème requete mysql

Posté : 13 mars 2007, 22:08
par marsu15
Salut,
Je suis en train de coder un site. Pour cela j'utilise une base de donnée pour gérer les utilisateurs (normal).
J'ai réalisé un formulaire d'inscription. Pour pouvoir s'inscrire il ne faut pas que le login demandé existe déja.
Voila le code la page
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Inscription | rockstar</title>
</head>

<body>
<?php
if (isset ($_POST['login']) && ($_POST['password']) && ($_POST['password2']) && ($_POST['email']) && ($_POST['email']) && ($_POST['nom']) && ($_POST['prenom'])){
	if (($_POST['password']) !== ($_POST['password2'])) {
		echo 'Erreur, vous allez être redirigé automatiquement';
	}
	
	else if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) {
		echo "Veuillez entrer une adresse e-mail valide";
	}
	
		
	else {
		$login = $_POST['login'];
		$cryptPass = md5 (($_POST['password']));
		$email = $_POST['email'];
		$nom = $_POST['nom'];
		$prenom = $_POST['prenom'];
		
		//on se connecte à la DB
		mysql_connect ("localhost", "root", "");
		mysql_select_db ("rockstar");
		
		$req = mysql_query ("SELECT COUNT * AS nbre_entrees FROM user WHERE login = '$login' ") or die (mysql_error());
		$total = mysql_fetch_array($req);
	
		if ($total['nbre_entrees'] > 0 ) {
			echo "Veuillez choisir un autre login";
		}
		
		else {
	
			//ajout de l'utilisateur dans la DB
			mysql_query ("INSERT INTO user VALUES ('', '$login', '$cryptPass', '$email', '$nom', '$prenom')");
			echo $_POST['prenom']." ton inscription a été prise en compte";
					
		}
		
		mysql_close();
	}
} 

else {
	echo "Veuillez remplir tout les champs";
?>

<form action="#" method="post">
Veuillez créer un login :<input type="text" name="login" /><br />
Veuillez créer un mot de passe : <input type="password" name="password" /><br />
Retapez votre mot de passe : <input type="password" name="password2" /><br />
Veuillez entrez votre adresse e-mail : <input type="text" name="email"/><br />
Votre nom : <input type="text" name="nom" /><br />
Votre prénom : <input type="text" name="prenom" /><br />
<input type="submit" value="Inscription"/><input type="reset" value="Recommencer" />
</form>
<?php
}

?>

</body>
</html>
Ce code me renvoit l'erreur suivante
Erreur de syntaxe près de 'AS nbre_entrees FROM user WHERE login = 'marsu15'' à la ligne 1
Ai-je fait une erreur quelque part (je pense que oui, sinon y'aurait pas une erreur!!)

Posté : 13 mars 2007, 22:31
par raptor
count(*) ;)

Posté : 13 mars 2007, 22:45
par marsu15
Au départ j'avais mis :
COUNT (*)
.
Ca ne marchait. J'ai déja demandé sur le site du zéro où on m'a dis de mettre :
COUNT *

Posté : 13 mars 2007, 22:50
par raptor
ben il y a les parentheses c'est sûr...

Posté : 13 mars 2007, 22:50
par marsu15
J'ai essayé avec
count (*)
Et ça ne marche toujours pas :
Erreur de syntaxe près de '*) AS nbre_entrees FROM user WHERE login = 'marsu15'' à la ligne 1

Posté : 13 mars 2007, 22:50
par raptor
Par contre faut pas d'espace entre count et la parenthese hein !

Posté : 13 mars 2007, 22:52
par raptor
en programmation on ne met habituellement pas d'espace entre le nom d'une fonction et la parenthese ouvrante. Apres les variables dans la parenthese peuvent avoir des espaces entre, mais pas avant la parenthese. En sql c'est pareil ;)

Posté : 13 mars 2007, 22:54
par marsu15
Ah oui ça marche, merci beaucoup raptor. Je ferais attention à partir de maintenant...

Posté : 13 mars 2007, 22:58
par raptor
De rien, bonne continuation.