Probleme de code php

Résolu
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();
?>
Configuration: Windows Vista
Firefox 3.5.6

4 réponses

  1. 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'];
    .....
    1. 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();
      ?>
      1. 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.