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 à 14:36
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:15
Bonjour,
J'ai un petit soucis avec un code, il faudrait qu'il me retourne des informations dans un tableau en se basant sur un critere, mais il me retourne toute les entrees de la table.
Merci.

Voici le code:

//Requete pour trouver le niveau
$req = ("SELECT * FROM classe WHERE libelle LIKE '%$classe%';");
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
$niveau_elev = $result_req['niveau'];

//Requete pour trouver les activite pour le niveau
$req1 = ("SELECT * FROM activite WHERE niveau LIKE '%$niveau_elev%';");
$result_req1 = mysql_query($req1) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result_req1);

// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Numéro</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Activite</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Description</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Niveau</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Salle</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Nbr_part</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Nom_prof</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Prenom_prof</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Nbr_seance</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Date_debut</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Date_fin</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Jour</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Heure_debut</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Heure_fin</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result_req1)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["id"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["libelle"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["description"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["niveau"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["salle"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["nbrmaxpart"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["nom_profass"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["prenom_profass"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["period"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["datedebut"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["datefin"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["joursem"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["heuredebut"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row["heurefin"].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else { echo 'Pas d\'enregistrements dans cette table...'; }

// on libère le résultat
mysql_free_result($result_req1);

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

2 réponses

Bonjour

C'est que $niveau_elev est vide
en effet, tu fais :
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
$niveau_elev = $result_req['niveau']; 
mais $result_req n'est pas un tableau, c'est une ressource. Il faut extraire une ligne de résultat de cette ressource avec mysql_fetch_array pour obtenir un tableau :
$result_req = mysql_query($req) or die ('Erreur : '.mysql_error() );
if ($ligne=mysql_fetch_array($result_req); {
$niveau_elev = $ligne['niveau']; 
}
1
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:15
Merci beaucoup ça marche nickel.
0