Probleme de code php

Résolu/Fermé
ana7 Messages postés 14 Date d'inscription mercredi 16 décembre 2009 Statut Membre Dernière intervention 29 janvier 2010 - 17 déc. 2009 à 15:29
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 - 17 déc. 2009 à 18:47
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
17 déc. 2009 à 15:50
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 mercredi 16 décembre 2009 Statut Membre Dernière intervention 29 janvier 2010
17 déc. 2009 à 17:44
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 mercredi 16 décembre 2009 Statut Membre Dernière intervention 29 janvier 2010
17 déc. 2009 à 18:43
J'ai resolu mon probleme merci
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
17 déc. 2009 à 18:47
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