Probleme de code php

Résolu
ana7 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un petit soucis avec ce code, le but est de verifier que l'activite auquel on veut s'inscrire correspond bien a son niveau.
Si le niveau correspond, l'inscription est effectuée, sinon un message d'erreur s'inscrit.
Merci de votre aide.

<?php
$numero=$_POST['numero'];

include ('connexion.php');

//recuperation des données
//Requete pour trouver le niveau
$req = ("SELECT * FROM classe WHERE libelle LIKE '%$classe%';");
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req)) {
$niveau_elev = $ligne['niveau'];
}


$req1 = ("SELECT * FROM activite WHERE id LIKE '%$numero%';");
$result_req1 = mysql_query($req1) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req1)) {
$libelle = $result_req1['libelle'];
$nom_profass = $result_req1['nom_profass'];
$prenom_profass = $result_req1['prenom_profass'];
$nom_eleve=$nom;
$prenom_eleve=$prenom;
$classe_eleve=$classe;
$nbrmaxpart = $result_req1['nbrmaxpart'];

//verification du niveau
$niveau_eleve1 = $result_req1['niveau'];
}

//verification du choix
if ($niveau_eleve != $niveau_eleve1) { echo 'Vous ne pouvez pas vous inscrire dans une activité qui ne correspond pas à votre niveau';}

//Verification de l'dentifiant
$req2= mysql_query("SELECT * FROM inscription WHERE activite LIKE '%$libelle%' AND niveau LIKE '%$niveau_eleve%'");

// on compte le nombre de résultats
$res2 = mysql_num_rows($req2);

//Vérification
if ($res2=$nbrmaxpart)
{
echo "<br><center><font color=\"red\">Plus de place disponible</font></br>";
exit;
}

elseif ($res2<$nbrmaxpart)
{
$ajout = "INSERT INTO inscriptions (activite, nom_prof, prenom_prof, nom_eleve, prenom_eleve, classe_eleve)
VALUES('$libelle', '$nom_profass', '$prenom_profass', '$nom_eleve', '$prenom_eleve', '$classe_eleve');";
$res_ajout = mysql_query($ajout) or die ('Erreur : '.mysql_error() );
echo "<br><center><font color=\"red\">AJOUT EFFECTUE</font></br>";
exit;
}

//On ferme la cession SQL avec le serveur
mysql_close();
?>
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
voir commentaires:

<?php
$numero=$_POST['numero'];

include ('connexion.php');

//recuperation des données
//Requete pour trouver le niveau
$req = ("SELECT * FROM classe WHERE libelle LIKE '%$classe%';");
//ou est la variable $classe ? si tu utilises une variable il faut qu'elle existe avant dans le script
//es tu sur de vouloir tous les enregistrement qui contiennent approximativement $classe ou seulement ceux qui ont exactement $classe
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req)) {
$niveau_elev = $ligne['niveau'];
}


$req1 = ("SELECT * FROM activite WHERE id LIKE '%$numero%';");
$result_req1 = mysql_query($req1) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req1)) {
//erreurs a toutes les lignes ci dessous
//il faut $xxxxxx=$ligne['xxxxxx']; et pas $result_req1['xxxxxx'];
$libelle = $result_req1['libelle'];

$nom_profass = $result_req1['nom_profass'];
$prenom_profass = $result_req1['prenom_profass'];
$nom_eleve=$nom;
$prenom_eleve=$prenom;
$classe_eleve=$classe;
$nbrmaxpart = $result_req1['nbrmaxpart'];
.....

                
0
ana7 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, jai modifier le code mais maintenant j'ai toujours le message "'Vous ne pouvez pas vous inscrire dans une activité qui ne correspond pas à votre niveau';" même quand l'enregistrement devrait se faire.

Voici le code:

<?php
$numero=$_POST['numero'];

include ('connexion.php');

//recuperation des données
//Requete pour trouver le niveau
$req = ("SELECT * FROM classe WHERE libelle LIKE '%$classe%';");
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req)) {
$niveau_elev = $ligne['niveau'];
}

$req1 = ("SELECT * FROM activite WHERE id LIKE '%$numero%';");
$result_req1 = mysql_query($req1) or die ('Erreur : '.mysql_error() );

if ($ligne1=mysql_fetch_array($result_req1)) {
$libelle = $ligne1['libelle'];
$nom_profass = $ligne1['nom_profass'];
$prenom_profass = $ligne1['prenom_profass'];
$nom_eleve=$ligne1['nom_eleve'];
$prenom_eleve=$ligne1['prenom_eleve'];
$classe_eleve=$classe;
$nbrmaxpart = $ligne1['nbrmaxpart'];
//verification du niveau
$niveau_eleve1 = $ligne1['niveau'];
}

if (($nom_eleve==$nom) && ($prenom_eleve==$prenom)) {
echo 'Vous êtes déjà inscrit';
exit;
}

//verification du choix
elseif ($niveau_eleve != $niveau_eleve1) {
echo 'Vous ne pouvez pas vous inscrire dans une activité qui ne correspond pas à votre niveau';
exit;
}

else {
//Verification de l'dentifiant
$req2= mysql_query("SELECT * FROM inscription WHERE activite LIKE '%$libelle%' AND niveau LIKE '%$niveau_eleve%'");
// on compte le nombre de résultats
$res2 = mysql_num_rows($req2);

//Vérification
if ($res2==$nbrmaxpart)
{
echo "<br><center><font color=\"red\">Plus de place disponible</font></br>";
exit;
}

elseif ($res2<=$nbrmaxpart)
{
$ajout = "INSERT INTO inscriptions (activite, nom_prof, prenom_prof, nom_eleve, prenom_eleve, classe_eleve)
VALUES('$libelle', '$nom_profass', '$prenom_profass', '$nom_eleve', '$prenom_eleve', '$classe_eleve');";
$res_ajout = mysql_query($ajout) or die ('Erreur : '.mysql_error() );
echo "<br><center><font color=\"red\">AJOUT EFFECTUE</font></br>";
exit;
}
}

//On ferme la cession SQL avec le serveur
mysql_close();
?>
0
ana7 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai resolu mon probleme merci
0
giheller Messages postés 1882 Date d'inscription   Statut Membre Dernière intervention   142
 
bonsoir,

avez-vous vérifié ce que contiennent les varaibles du test

elseif ($niveau_eleve != $niveau_eleve1) {
echo 'Vous ne pouvez pas vous inscrire dans une activité qui ne correspond pas à votre niveau';
exit;
}

ensuite "remonteez" dans le code pour voir ù elles sont initialisées.
0