Code php

Résolu
ana7 Messages postés 16 Statut Membre -  
ana7 Messages postés 16 Statut Membre -
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();
Configuration: Windows Vista
Firefox 3.5.6

2 réponses

  1. le père
     
    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
  2. ana7 Messages postés 16 Statut Membre
     
    Merci beaucoup ça marche nickel.
    0