Regrouper les infos dans un même fieldset PHP

Résolu/Fermé
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 - 17 avril 2012 à 09:48
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 - 18 avril 2012 à 09:52
Bonjour,

je possède différents sports dans une base de données(appelés sections) et différents membres (personnes) qui ont différents rôles (fonctions) dans ce sport.
L'idée est de regrouper les membres dans un fieldset donnant leurs fonctions à l'intérieur d'un autre fieldset donnant le sport.
En gros ce que je voudrais c'est par exemple :

--- Foot -----------------------
----Président-----------------
Frank
----------------------------------
----Membres-------------------
Frank
Frank2
...
------------------------------------
------------------------------------

Mais pour le moment ça me donne :

--- Foot -----------------------
----Président-----------------
Frank
----------------------------------
----Membres-------------------
Frank
------------------------------------
----Membres--------------------
Frank2
-----------------------------------
---Membres---------------------
...
-----------------------------------
------------------------------------


Voici mon code php:

<?php
//connexion à la base de données
mysql_conn();
//REQUËTE ALLANT CHERCHER LES SECTIONS DANS LA BASE DE DONNEES EN LES TRIANT DANS L'ORDRE CROISSANT DE L'AFFICHAGE (ordreAffichSection) DEFINI
$section = mysql_query("SELECT idSection, libSection
FROM section
ORDER BY ordreAffichSection")
or die ("Erreur :".mysql_error());

//initialise $info sans aucune information à l'intérieur, cette variable servira à mettre toutes les infos des personnes (numéro de téléphone, mail, ...) si elles existent
$info="";
//PARCOURS CHAQUE LIGNE DE LA REQUETE UNE A UNE
while ($reqSection = mysql_fetch_array($section))
{
//crée le fieldset de la section
//Ce fieldset créera un léger espacement entre les différents fieldsets de section grâce au margin-bottom
echo "<fieldset style=\"margin-bottom:1.5em\">";
//affiche le nom de la section
echo "<legend>";
echo $reqSection['libSection'];
echo "</legend>";
//fin affichage nom de la section

//REQUËTE ALLANT CHERCHER LES INFORMATIONS (la fonction, nom, prénom, n° poste CHU, n° telephone personnel et adresses mail pro et perso) DES PERSONNES SELON LA SECTION QUI EST AFFICHEE
$membre = mysql_query(" SELECT libFonction, nomPersonne, prenomPersonne, telCHUPersonne, telFixePersonne, telPortablePersonne, mailProPersonne, mailPersoPersonne, urlPhotoPersonne
FROM personne,membre,fonction
WHERE 'membre'.'idFonction' = 'fonction'.'idFonction'
AND 'membre'.'idPersonne' = 'personne'.'idPersonne'
AND 'membre'.'idSection' = '".$reqSection['idSection']."'
")
or die ("Erreur :".mysql_error());

//Boucle affichant les informations des personnes
while ($reqMembre = mysql_fetch_array($membre))
{
//création d'un fieldset affichant les informations des personnes selon leurs fonctions
//Ce fieldset créera un léger espacement en bas avec celui qui l'encadre (le fieldset de la section et le dernier affiché de la fonction ne seront pas collé sur le bass)
//grâce au margin-bottom
echo "<fieldset style=\"margin-bottom:0.2em\">";
//affichage du libellé de la fonction
echo "<legend>";
echo $reqMembre['libFonction'];
echo "</legend>";
//fin affichage libellé fonction
//affichage du nom et du prénom de la personne dans un tableau
//pour pouvoir collé l'image sur la droite
echo "<table style= border=\"0\"><tr><td style=\"width: 100px\">"; //largeur exprimé en pourcentage
echo $reqMembre['nomPersonne']."<br>"; //passage à la ligne pour afficher le prénom en bas (<br>)
echo $reqMembre['prenomPersonne'];
echo "</td><td>";
//affichage de la photo de la personne grâce à l'url écrite dans la base de données ( table PERSONNE )
$photo = $reqMembre['urlPhotoPersonne'];
echo "<img src =\"$photo\">";
echo "</td></tr>";
echo "</table>";


//----------------------------------------------------------------------------------
// RECUPERATION DES DONNEES DES PERSONNES SI ELLES EXISTENT DANS LA BDD |
//----------------------------------------------------------------------------------
//Si le numéro de poste CHU est renseigné, il est placé dans $info
if (isset($reqMembre['telCHUPersonne'])){
$info .= "<u>Poste</u> : ".$reqMembre['telCHUPersonne']." ";
}


//Si le numéro de téléphone fixe est renseigné, il est placé dans $info
if (isset($reqMembre['telFixePersonne'])){
$info .= "<u>Tel Perso</u> : ".$reqMembre['telFixePersonne']." ";
}


//Si le numéro de téléphone portable est renseigné, il est placé dans $info
if (isset($reqMembre['telPortablePersonne'])){
$info .= "<u>Portable</u> : ".$reqMembre['telPortablePersonne']." ";
}


//Si l'adresse mail pro est renseigné, il est placé dans $info
if (isset($reqMembre['mailProPersonne'])){
$info .= "<u>Mail Pro</u> : ".$reqMembre['mailProPersonne']." ";
}


//Si l'adresse mail perso est renseigné, il est placé dans $info
if (isset($reqMembre['mailPersoPersonne'])){
$info .= "<u>Mail Perso</u> : ".$reqMembre['mailPersoPersonne']." ";
}

$info .="<br><br>";

//Affichage $info dans le fieldset
echo $info;

// Réinitialisation de $info pour redémarrer la boucle, si la variable n'est pas réinitialisé les infos précédentes sont gardées en mémoire
// et seront affichées à la boucle suivante en plus des nouvelles infos
$info = "";

echo "</fieldset>";
//fin fieldset des infos des personnes
}
echo "</fieldset>";
//fin fieldset de la section
}
?>

Si quelqu'un pouvait me donner un coup de main, ça serait génial, deux jours que je m'arrache les cheveux sans succés

Merci beaucoup d'avance,

A voir également:

3 réponses

flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
17 avril 2012 à 09:52
C'est normal que pour le moment ça t'affiche cela car tu boucles et affiche à chaque fois la catégorie:

while ($reqSection = mysql_fetch_array($section))
{
//crée le fieldset de la section
//Ce fieldset créera un léger espacement entre les différents fieldsets de section grâce au margin-bottom
echo "<fieldset style=\"margin-bottom:1.5em\">";
//affiche le nom de la section
echo "<legend>";
echo $reqSection['libSection'];
echo "</legend>";
//fin affichage nom de la section


Il faut faire en sorte d'enregistrer ta catégorie et de ne l'afficher que lorsqu'elle change.

Voilà, voilà

Flavien
0
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 8
17 avril 2012 à 09:57
Je voyais bien ce que ça faisait mais je ne vois pas comment faire pour que ça fonctionne comme je le souhaite :S
0
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
Modifié par flav1313 le 17/04/2012 à 10:06
$i = 0 ;

while ($reqSection = mysql_fetch_array($section))
{
if($i == 0){
$categorie = $reqSection['libSection'];

echo "<fieldset style=\"margin-bottom:1.5em\">";

echo "<legend>";
echo $reqSection['libSection'];
echo "</legend>";
}//fin if

if( $categorie != $reqSection['libSection']){
$categorie = $reqSection['libSection'];

echo "<fieldset style=\"margin-bottom:1.5em\">";

echo "<legend>";
echo $reqSection['libSection'];
echo "</legend>";
}//fin if

.......
$i++;
}//fin while
0
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
17 avril 2012 à 10:07
La première fois, ta première catégorie sera enregistré et s'affichera et lorsqu'elle changera, la variable $categorie changera et ta nouvelle catégorie s'affichera de nouveau.
0
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 8
17 avril 2012 à 10:31
ça me met une erreur comme quoi reqsection n'est )pas défini à la ligne où est écrit $categorie = $reqSection['libSection'];
0
flav1313 Messages postés 751 Date d'inscription mardi 24 août 2010 Statut Membre Dernière intervention 22 octobre 2012 100
17 avril 2012 à 10:38
Je n'ai fais que copier ton $reqSection['libSection'] de base.
0
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 8
17 avril 2012 à 10:40
je sais bien mais je vois pas pourquoi ca me sort une erreur c'est drôle
0
woulfmoon Messages postés 110 Date d'inscription mercredi 16 février 2011 Statut Membre Dernière intervention 26 juin 2012 8
17 avril 2012 à 10:40
j'avais oublié la majuscule au milieu
0