Page 1 sur 1

Interpretation du résultat sql

Posté : 02 août 2005, 14:27
par slipndi
Bonjour...
comme j'aime pas venir demandé de l'aide, et que ca fait rien que 3 fois en 4 jours ben je commence à déprimer désolé de vous embêter mais faut que j'avance dans ce m*z* f*c*a projet ! ;)

Donc voilà mes commissions c finiiii :):) Mais
maintenant je dois faire une page "normaliser" pour les différentes écoles de la commune ou je suis en se moment, et pour cela j'ai crée différentes tables, vu que j'ai des relations en 1,n j'ai eu bc bc de bowdel :) et j'en ai découler différentes tables les voici :

Code : Tout sélectionner

CLASSE : ECOLE : PROFESSEUR : id_classe id_ecole id_prof nom_classe nom_ecole nom_prof tel_ecole prénom_prof pour relier ces tables j'ai du utiliser 3 autres tables : ENSEIGNE : DISPOSE : TRAVAIL : id_prof id_classe id_prof id_classe id_ecole id_ecole

une fois cela fait j'ai donc fait une requete pour récupérer toutes les infos :
$requete="select * from ecole,classe,dispose,enseigne,professeur,travail where ecole.id_ecole=$id and ecole.id_ecole=dispose.id_ecole and dispose.id_classe=classe.id_classe and  classe.id_classe=enseigne.id_classe and enseigne.id_prof=professeur.id_prof and travail.id_prof=professeur.id_prof and travail.id_ecole=ecole.id_ecole";
The requete de la mort qui tue, bref après avoir fait cette requete j'exploite donc les résultat mais le soucis qui arrive c'est que lorsque par exemple j'ai 2 profs qui enseigne au CM1 dans la même ecole ben il ne m'en affiche qu'un :
ma partie affichage ressemble à cela :
$result=mysql_query($requete);
$tableau=mysql_fetch_array($result);
 $compteur=1;
while ($tableau=mysql_fetch_array($result))
{
 echo "<td class=\"redaction\">" . $tableau['nom_classe'] . "</td><td class=\"redaction\">" . $tableau['prenom_prof'] . " " . $tableau['nom_prof'] . "</td>";
         if ($cpt % 2 == 0)
         {
          echo "</tr><tr>";
          }
          $compteur++;
         }
     ?>

donc en exemple
il devrais m'afficher :

CP : Mike Portnoy CE 1 : FRANKY COSTANZA
CM1 : TM STEVENS
POON
au lieu de ca mon affichage est :

CP : MIke portnoy CE 1 : FRANKY COSTANZA
CM1 : POON

...
voilà j'espère avoir été assez clair ;)

Posté : 02 août 2005, 14:33
par mere-teresa
As-tu testé ta requête dans PHPMyADmin ? Si oui, que donne-t-elle ?

Posté : 02 août 2005, 14:35
par ouckileou
avant de t'attaquer au PHP, fais ta requête directement sous phpMyAdmin ou autre interface et vérifie les données qu'elle t'envoie.
Ce sera bien plus simple de modifier.

Une fois qu'elle serait OK, tu passeras à l'affichage PHP.

1er point : enlève ce *, c'est pas pratique et pas optimisé si tu n'as pas besoin de tout

Posté : 02 août 2005, 14:37
par slipndi
Donc oui j'ai essayer la requete dans myadmin en faite elle me donne exactement ce que je veux :

ecole 1 CP : Mike Portnoy
ecole 1 CE 1 : FRANKY COSTANZA
ecole 1 CM1 : TM STEVENS
ecole 1 CM1 : POON


c'est la première vérification que j'ai faite, au vu de la requete c'est normal de penser que ca vienne de l'as l'ai assez complexe mais bon...J'ai pas d'autre choix a part découper en plusieurs requete et encore ca serai le bowdel je pense... :(

edit : j'ai fait l'optimisation, c'est pas mon fort et en général je le fais à la fin en reprenant mon code une fois que ca marche, mais bon la je l'ai corrigé et ca change rien :s

Posté : 02 août 2005, 14:40
par ouckileou
en passant : pourquoi 2 mysql_fetch_array ?

c'est bizarre : TM STEVENS n'est pas affiché du tout ?

car s'il peut y avoir des soucis de présentation, par contre tout devrait être affiché normalement

as-tu regardé dans le code source généré ?

Posté : 02 août 2005, 14:45
par slipndi
hola , la fatigue me guete, enfaite le deuxième qui trainais c'était car j'avais oublier d'enlever un morceau de code, maintenant après de minimes corrections j'ai l'affichage de tout les noms
mais:
CE1 : nom1
CE 1 : nom 2
enfaite je pense qu'avec une requete aussi complexe c'est chaud de les rassembler les 2 ce1 car il faudrai soit mettre les 2 noms dans la meme case soit lui faire faire un colspan... c'est un peu complexe non ?

c'est à dire avoir :
CE 1 : Nom 1, Nom 2 ou CE 1 : Nom1 <br>Nom2

Posté : 02 août 2005, 14:48
par ouckileou
ça c'ets à toi de monter la bricole pour les assembler

si ta requête est trié par école, puis classe, tu auras tous les résultats regroupés. Donc il suffit de boucler, et de détecter quand tu changes de classe, et de faire ce que tu veux.

Le colspan ne me parait pas adapté car il faut que tu saches avant combien tu as de profs pour chaque classe

mais une cellule pour chaque classe, avec un petit <br> dedans ça devrait convenir non , :)

pour chaque prof une nouvelle ligne et/ou cellule
sauf si sa classe est la même que celle du prof d'avant

Posté : 02 août 2005, 14:52
par slipndi
ouais , merci de m'avoir mis sur la voie et de m'avoir aider a corrigé mon code, désolé aussi d'être relou aujourd'hui :)
enfin tout les jours quoi !
Merci encore