Ligne incorrect php

Résolu
ana7 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Ricky38 Messages postés 4349 Date d'inscription   Statut Contributeur Dernière intervention   -
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;
}
A voir également:

4 réponses

zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
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
Ricky38 Messages postés 4349 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
Salut zoby44

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

Bonne journée ;)
0
Ricky38 Messages postés 4349 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
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
0
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
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.
0
ana7 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de votre aide et pour ton code zoby44, tu m'as depanné.
Merci encore.
0