Ligne incorrect php

Résolu
Bonjour,
J'ai une partie de code qui ne passe pas, il devrait y avoir une vérification mais elle ne se fait pas.
Merci pour votre aide.

Voici le morceau qui pose probleme.

//On verifie que l'enregistrement n'existe pas
$verif = ("SELECT * FROM inscription WHERE activite LIKE '%$libelle%';");
$result_verif = mysql_query($verif) or die ('Erreur : '.mysql_error() );

if ($ligne_verif=mysql_fetch_array($result_verif)) {
$nom_verif = $ligne_verif['nom_eleve'];
$prenom_verif = $ligne_verif['prenom_prenom'];
$classe_verif = $ligne_verif['classe_eleve'];
}

if (($nom_verif == $nom) && ($prenom_verif == $prenom)) {
echo "Vous êtes déjà inscrit à cette activité";
exit;
}
Configuration: Windows Vista
Firefox 3.5.6

4 réponses

  1. Merci de votre aide et pour ton code zoby44, tu m'as depanné.
    Merci encore.
    1. Salut.
      D'accord ni avec l'un, ni avec l'autre ...
      Pour Ricky38 :
      "$nom" est une variable, "nom" est la clé d'un tableau, donc la syntaxe est bonne.

      Pour commencer, la requête sql est une chaine de caractère, pourquoi tu l'entoures avec des parenthèses ? Elles sont inutiles (peut être que ca fonctionne avec, j'ai pas testé).

      Ensuite, quand tu regardes dans la doc PHP, mysql_fetch_array renvoi un array et pas un booléen, donc impossible de mettre un "if" dessus.

      Le mot clé "LIKE" de SQL fait une recherche approximative dans une base de données, donc pour une vérification, c'est pas terrible.
      Si par exemple ton utilisateur s'inscrit pour faire du ski (de fond) et qu'il est déjà inscrit pour du ski nautique, son inscription ne sera pas validée.
      Utilises plutôt : WHERE activite='$libelle'

      Donc, je verrais plus un truc comme ca :

      // On verifie que l'enregistrement n'existe pas
      $verif = "SELECT * FROM inscription WHERE activite = '$libelle'";
      $result_verif = mysql_query($verif) or die ('Erreur : '.mysql_error() );
      
      // Compteur à 0
      $i = 0;
      
      // Boucle sur le nombre d'entées SQL
      while ($ligne_verif=mysql_fetch_array($result_verif)) {
      $nom_verif[$i] = $ligne_verif['nom_eleve'];
      $prenom_verif[$i] = $ligne_verif['prenom_prenom'];
      $classe_verif[$i] = $ligne_verif['classe_eleve'];
      $i++;
      }
      
      // Vérification pour inscription
      if ( ( in_array( $nom, $nom_verif ) ) && ( in_array( $prenom, $prenom_verif ) ) ) {
      echo "Vous êtes déjà inscrit à cette activité";
      exit;
      }
      


      J'espère avoir put t'aider.
      1. Contributeur
        Salut zoby44

        tu as bien raison mon ami, j'ai regardé beaucoup trop vite

        Bonne journée ;)
    2. Quel est la partie qui ne fonctionne pas?

      ce code est faux
      if ($ligne_verif=mysql_fetch_array($result_verif))

      il manque un "="
      if ($ligne_verif == mysql_fetch_array($result_verif))

      Mais je ne vois pas l'interet d'écrire ceci.
      1. Contributeur
        Salut,

        à une place tu as $nom et à l'autre tu as nom_eleve
        à une place tu as $prenom et à l'autre tu as prenom_prenom

        Surement ça