Problème avec traitement données sql en php

Problème avec traitement données sql en php - PHP - Programmation

Marsh Posté le 06-06-2008 à 10:49:33    

Bonjour à toutes et à tous,
 
Je suis sur un petit programme de gestion d'établissement scolaire mais je me heurte à quelques difficultés. Notament une sur laquelle je bute depuis hier et impossible pour moi de résoudre ce problème.
 
J'ai des classes(1ERE01, TERM01,2NDE01,...) pour lesquelles sont affiliés des professeurs(idProf). Chaque professeur à une matiere qu'il enseigne (idMatiere). Chaque classe appartient à une section (c'est à dire la filière : S, L, ES,...) qui apour clé primaire idSection. Et donc pour chaque section, des matières sont définies pour les enseignées avec un nombre d'heures prédéfinies. Ainsi, la section S à plus d'heure de mathématiques que la L et la L a plus d'heure de français que la S par exemple.
 
Donc ce que je souhaite faire c'est : vérifier la section de la classe afin de définir quelles matières elle suit, ensuite je veut récupérer les professeur ayant la classe dans ses heures d'enseignement ( en gros récupérer les professeurs affiliés à la classe en question). Ces deux rapporchement vont me permettre ensuite de comparer les idMatières de la section avec celles des professeurs qui enseigne à la classe, come ça, je pourrait vérifier pour quelles matières la classe n'a pas de professeurs et ainsi pouvoir afficher un formulaire déroulant(un <select></select> ) qui affichera uniquement les classes n'ayant pas de professeur affilié pour la matière mathématiques par exemple.
 
J'ai donc essayé mais je coince sur la création des tableaux qui vont conserver les infos idSection et idMatiere. En effet, lorsque je fait la requete sql me permettant de récupérer l'idSection et les idMatiere, seule la dernière infos est gardée.
 
Je m'explique, je déclare mon tableau $tab_matSection = array(), jusque la pas de souci mais ensuite lorsque je boucle sur les résultats de la requetes, j'indique :
 
$tab_matSection[$idSection] = $idMatiere;
 
Mais vu qu'il y a 3 section (donc seulement 3 idSection) je pense qu'il écrase à chaque fois l'idSection identique et écrase de ce fait l'idMatiere et donc ne garde ue le dernier résultat de chaque section : au lieu d'avoir   1 => 5, 1 => 8, 1 => 12, 1 => 13, 1 => 16, 1 => 22 et bien j'ai seulement 1 => 22 (le 1 étant l'idSection et les autres sont les idMatiere)
 
Donc si quelqu'un avait la solution je suis preneur !
 
Merci à vous

Reply

Marsh Posté le 06-06-2008 à 10:49:33   

Reply

Marsh Posté le 06-06-2008 à 11:28:53    

heu nan
 
mais je peux te mettre le MLD si ca peut t'aider

Reply

Marsh Posté le 06-06-2008 à 11:31:47    

Si j'ai bien compris je pense que tu peux faire le tout en une requete plutot que de mouliner une usine à gaz de tableaux :D
 
Un peu de code serait le bienvenu pour au moins savoir comment tu fais tes requêtes, d'où sortent tes tabeaux ;)

Reply

Marsh Posté le 06-06-2008 à 11:42:16    

ok.
Donc ici c'est une requete qui permet de récupérer les idSection et de boucler sur chacune d'entre elle.Dans seconde boucle, on effectue une requete sur la table regrouper qui contient les idSection et les idMatière de chaque question :  
 
                               

Code :
  1. $tab_matSection = array();
  2.   $reqIdSection = mysql_query('SELECT idSection FROM section');
  3.   while($repIdSection = mysql_fetch_array($reqIdSection))
  4.   {
  5.    $reqMatSection = mysql_query('SELECT * FROM regrouper WHERE idSection = "' .$repIdSection['idSection']. '"');
  6.    while($repMatSection = mysql_fetch_array($reqMatSection))
  7.    {
  8.     $idSection = $repMatSection['idSection'];
  9.     $idMatiere = $repMatSection['idMatiere'];
  10.     $tab_matSection[$idSection] = $idMatiere;
  11.    }
  12.   }


 
 
Ce code la, si je veux afficher les iformations du tableau et bien je n'obtiens que le dernier réésultat de chaque section
 
Mon MLD :  
 
PROFESSEUR(IdMatiere, #idMatiere)
 
CLASSE(codeClasse, #idSection)
 
SECTION(idSection, nomSection)
 
MATIERE(idMatiere)
 
REGROUPER(#idMatiere, #idSection)
 
AFFILIER(#codeClasse, #idProf)
 
 
j'ai bien sur évité les informations peu importante dans le MLD, je me suis restraind à l'esentiel.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed