Erreur SQL !

Bonjour,
Je voudrais savoir ce qui ne vas pas dans mon script en php car cela me met :
Erreur SQL !
SELECT COUNT (*) FROM pseudomdp WHERE pseudo = uzumaki
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 pseudomdp WHERE pseudo = uzumaki' at line 1

voici mon code php:

<?php
$pseudo=$_POST['pseudo'];
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('info',$db) or die('Erreur de selection '.mysql_error());

$sql = "SELECT COUNT (*) FROM pseudomdp WHERE pseudo = ".$pseudo."";
$req = mysql_query ($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbr = mysql_fetch_assoc ($req) ;
if ($nbr = 0)
{
echo 'ok';
}
else
{
echo 'non';
include ('login.htm');
}
?>
Merci de répondre !



Je suis le meilleur au monde dans ce que je fait (enfin je crois!)

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. Non, plutôt :
    $sql = "SELECT * FROM pseudomdp WHERE pseudo = '".$pseudo."';"; 
    1. ça ne marche pas ghuysmans99
      et seby la syntax est correct mais cela m'affiche toujours le mot "non" avec le formulaire pour mettre le pseudo (login.htm)
      1. Contributeur
        En même temps ça n'a aucun sens de comparer un tableau à 0. Tu ne demandes pas de mot de passe sur ton form ?
        1. Si je demande un mot de passe mais ce n'est qu'un test (je débute)
          j'ai trouvé la réquete sql mais maintenant cela me met parse error on line 21 sauf que la ligne 21 est la ligne où il y a le "?>" (je ne comprend pas)
          1. Contributeur
            Si tu débutes :

            Pour être certain que ta requête SQL soit bien construite, fais un echo dessus :

            <?php echo $sql; ?>

            Ainsi, si il manque des valeurs, ou si elles sont incorrectes, tu le verras.

            Tu peux aussi tester la requête elle-même sur la base pour vérifier qu'elle retourne bien des données.

            1. Envoie moi par email l'entièreté du code php de cette partie là et je te le corrige !
          2. Contributeur
            $mdp=$_POST['mdp']; $sql = "SELECT id FROM pseudomdp WHERE pseudo='$pseudo' AND mdp='$mdp';"; if (mysql_num_rows(mysql_query($sql)) echo("ok"); else echo("pas bon");
            1. ghuyman ce que je veux faire c'est pas faire un login ce que je veux faire c'est vérifier si le pseudo existe déjâ !
              1. Contributeur
                Okay ... Ceci devrait aller :
                <?php
                // connexion à la base
                $db = mysql_connect('localhost', 'root', '') or die(mysql_error());
                mysql_select_db('info',$db) or die(mysql_error());
                
                // récupération du champ
                $pseudo = $_POST['pseudo'];
                
                // exécution de la requête
                $sql = "SELECT pseudo FROM pseudomdp WHERE pseudo = '$pseudo';";
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                $nbr = mysql_fetch_assoc($req);
                
                if ($nbr == 0)
                	echo 'ok';
                else
                {
                	echo 'non';
                	include ('login.htm');
                }
                ?> 
                1. Contributeur
                  $sql = "SELECT COUNT (*) FROM pseudomdp WHERE pseudo = '$pseudo';"; 
                  Et attention à l'injection SQL !
                  Google is your best friend
                  VB.NET is good ... VB6 is better !