par
steph11574 » 04 août 2011, 00:38
Le tableau retourné par la requête est tout à fait utilisable pour ce que tu souhaites.
Exemple :
// Considérons le tableau suivant retourné par la requête
$tableau_sql = array(
0 => array('id' => 1, 'nom' => 'numéro 1', 'cat' => 1),
1 => array('id' => 2, 'nom' => 'numéro 2', 'cat' => 1),
2 => array('id' => 3, 'nom' => 'numéro 3', 'cat' => 1),
);
// Ici démarre le véritable code
$cat_affiche = false;
while($r = mysql_fetch_array($req)) // Le while de ton code
{
if( $cat_affiche === false ) // La catégorie n'a jamais été affichée
{
echo 'catégorie : .'$r['cat'].' <br />';
$cat_affiche = true; // On déclare avoir affiché la catégorie
}
echo $r['id'].' - '.$r['nom'].' <br />';
}
catégorie : 1
1 - numéro 1
2 - numéro 2
3 - numéro 3
merci pour ta reponse j'arrive a faire afficher qu'une seule valeure sauf pour faire afficher une seule fois la liste deroulante et la checkbox par contre se qu'il y a c'est que dans ma table (et si on reprend ton exemple) j'ai plusieurs cat j'ai cat1 cat 2.......
j'ai reecrit mon code par rapport a ce que tu ma dit en rajoutant le code colspan pour les fusionner mais les valeurs de la catégorie 1 et 2...... se melange j'ai essayer de mettre un if($evt_codex==$evt_codex) qui est une valeur unique et commune a toute les lignes qui doivent etre fusionner
mais rien a faire ca ce melange j'aurais encore besoin d'aide
je remet mon code que j'ai reecrit
Code : Tout sélectionner
<?php
Require_once("connect.php");
echo '<head><link rel="stylesheet" type="text/css" href="stylesheet.css" /></head>';
echo '<body bgcolor=#D3E8ED>';
echo '<form action="service_table.php" method="post" target="main">';
if($_SESSION['activite'] == 'alpin')
{
// on vas recuperer les info course dans la table calendrier
$date = date("Y-m-d");
$date_num = date_num($date);
$sql = "select evt_date_comp,evt_activite,evt_code,evt_nom,epr_discipline,entite,evt_station,evt_club_nom,epr_codex,epr_sexe,epr_categorie from calendrier_regional where evt_activite = ('ALP')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($req);
if($data)
{
$compteur = 0;
echo '<FORM method=get action="serv.php">';
// début du tableau
echo '<table bgcolor="#A9DBE0">'."\n";
// première ligne on affiche les titres prénom et Nom dans 12 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b>date</td>';
echo '<td bgcolor="#669999"><b>Act.</td>';
echo '<td bgcolor="#669999"><b>evt_codex</td>';
echo '<td bgcolor="#669999"><b>nom de l_évènement</b></td>';
echo '<td bgcolor="#669999"><b>discipline</b></td>';
echo '<td bgcolor="#669999"><b>niveau</b></td>';
echo '<td bgcolor="#669999"><b>station</b></td>';
echo '<td bgcolor="#669999"><b>club organisateur</b></td>';
echo '<td bgcolor="#669999"><b>sexe</b></td>';
echo '<td bgcolor="#669999"><b>categorie</b></td>';
echo '<td bgcolor="#669999"><b>Poste souhaité</b></td>';
echo '<td bgcolor="#669999"><b>Dispo</b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 12 colonnes, 1 résultat par ligne.
$evt_date_comp_affiche = false;
$evt_activite_affiche = false;
$evt_codex_affiche = false;
$evt_nom_affiche = false;
$epr_discipline_affiche = false;
$entite_affiche = false;
$evt_station_affiche = false;
$evt_club_nom_affiche = false;
while($row = mysql_fetch_array($req))
{
if($row['evt_activite'] == 'ALP')//affichage calendrier_regional Alpin
{
$evt_date_comp = date_francaise($row['evt_date_comp']);
$evt_activite = $row['evt_activite'];
$evt_codex = $row['evt_code'];
$evt_nom = $row['evt_nom'];
$epr_discipline = $row['epr_discipline'];
$entite = $row['entite'];
$evt_station = $row['evt_station'];
$evt_club_nom = $row['evt_club_nom'];
$epr_sexe = $row['epr_sexe'];
$epr_categorie = $row['epr_categorie'];
echo '<tr onmouseover="this.style.backgroundColor=\'#FF0000\';" onmouseout="this.style.backgroundColor=\'\';" bgcolor="#CCCCCC">';
if($evt_codex == $evt_codex)
{
if( $evt_date_comp_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_date_comp.'</td>';
$evt_date_comp_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_activite_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_activite.'</td>';
$evt_activite_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_codex_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_codex.'</td>';
$evt_codex_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_nom_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_nom.'</td>';
$evt_nom_affiche = true; // On déclare avoir affiché la catégorie
}
if( $epr_discipline_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$epr_discipline.'</td>';
$epr_discipline_affiche = true; // On déclare avoir affiché la catégorie
}
if( $entite_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$entite.'</td>';
$entite_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_station_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_station.'</td>';
$evt_station_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_club_nom_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_club_nom.'</td>';
$evt_club_nom_affiche = true; // On déclare avoir affiché la catégorie
}
echo '<td >'.$epr_sexe.'</td>';
echo '<td >'.$epr_categorie.'</td>';
echo '<td > <p> <input type="hidden" name="config" value="">
<SELECT name="poste">
<OPTION value="forum1" SELECTED>Tous poste</option>
<OPTION value="forum2" >DT</option>
<OPTION value="forum3" >Chef control.</option>
<OPTION value="forum4" >juge </option>
<OPTION value="forum5" >Piste</option>
<OPTION value="forum6" >starter</option>
<OPTION value="forum7" >Chrono</option></SELECT></td>';
echo '<td > <p> <INPUT TYPE="CHECKBOX" name="options[]" value=""></p> </td>';
}
}
echo '</tr>'."\n";
$compteur = +1;
}
}
}
echo '</table>'."\n";
// echo '<p> Catégorie " * " = catégorie <b> Poussins </b>';
echo '<P>';
// fin du tableau.
if ($compteur != 0)
{
echo '<td bgcolor="#CCCCCC"><p><input type="submit" value="INSCRIRE" name="S1" title="Inscrire"><input type="reset" value="Effacer la selection" name="S2" title="Effacer"></p></td>';
}
echo '</form>';
exit;
if($_SESSION['activite'] == 'fond')//affichage calendrier_regional fond
{
//---------je recopi le memes tableau que celui du haut ----------/
}
exit;
// on ferme la connexion à mysql
mysql_close();
et si c'est possible j'aimerai comme dans ton exemple arriver a avoir un tableau
-----------------------1 ------- numéro 1
catégorie : 1-------1 ------- numéro 1--------------une liste deroulante----------un hidden
-----------------------2 ------- numéro 2
-----------------------3 ------- numéro 3
__________________________________
-----------------------1 ------- numéro 1
catégorie : 2-------1 ------- numéro 1--------------une liste deroulante----------un hidden
-----------------------2 ------- numéro 2
-----------------------3 ------- numéro 3
avec un encadrement unnique pour categorie1 et un pour categorien 2 et un encadrement numero1 numero2 .....
-
[quote="xTG"]Le tableau retourné par la requête est tout à fait utilisable pour ce que tu souhaites.
Exemple :
[php]// Considérons le tableau suivant retourné par la requête
$tableau_sql = array(
0 => array('id' => 1, 'nom' => 'numéro 1', 'cat' => 1),
1 => array('id' => 2, 'nom' => 'numéro 2', 'cat' => 1),
2 => array('id' => 3, 'nom' => 'numéro 3', 'cat' => 1),
);
// Ici démarre le véritable code
$cat_affiche = false;
while($r = mysql_fetch_array($req)) // Le while de ton code
{
if( $cat_affiche === false ) // La catégorie n'a jamais été affichée
{
echo 'catégorie : .'$r['cat'].' <br />';
$cat_affiche = true; // On déclare avoir affiché la catégorie
}
echo $r['id'].' - '.$r['nom'].' <br />';
}[/php]
[quote]catégorie : 1
1 - numéro 1
2 - numéro 2
3 - numéro 3[/quote][/quote]
merci pour ta reponse j'arrive a faire afficher qu'une seule valeure sauf pour faire afficher une seule fois la liste deroulante et la checkbox par contre se qu'il y a c'est que dans ma table (et si on reprend ton exemple) j'ai plusieurs cat j'ai cat1 cat 2.......
j'ai reecrit mon code par rapport a ce que tu ma dit en rajoutant le code colspan pour les fusionner mais les valeurs de la catégorie 1 et 2...... se melange j'ai essayer de mettre un if($evt_codex==$evt_codex) qui est une valeur unique et commune a toute les lignes qui doivent etre fusionner
mais rien a faire ca ce melange j'aurais encore besoin d'aide
je remet mon code que j'ai reecrit
[code] <?php
Require_once("connect.php");
echo '<head><link rel="stylesheet" type="text/css" href="stylesheet.css" /></head>';
echo '<body bgcolor=#D3E8ED>';
echo '<form action="service_table.php" method="post" target="main">';
if($_SESSION['activite'] == 'alpin')
{
// on vas recuperer les info course dans la table calendrier
$date = date("Y-m-d");
$date_num = date_num($date);
$sql = "select evt_date_comp,evt_activite,evt_code,evt_nom,epr_discipline,entite,evt_station,evt_club_nom,epr_codex,epr_sexe,epr_categorie from calendrier_regional where evt_activite = ('ALP')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($req);
if($data)
{
$compteur = 0;
echo '<FORM method=get action="serv.php">';
// début du tableau
echo '<table bgcolor="#A9DBE0">'."\n";
// première ligne on affiche les titres prénom et Nom dans 12 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b>date</td>';
echo '<td bgcolor="#669999"><b>Act.</td>';
echo '<td bgcolor="#669999"><b>evt_codex</td>';
echo '<td bgcolor="#669999"><b>nom de l_évènement</b></td>';
echo '<td bgcolor="#669999"><b>discipline</b></td>';
echo '<td bgcolor="#669999"><b>niveau</b></td>';
echo '<td bgcolor="#669999"><b>station</b></td>';
echo '<td bgcolor="#669999"><b>club organisateur</b></td>';
echo '<td bgcolor="#669999"><b>sexe</b></td>';
echo '<td bgcolor="#669999"><b>categorie</b></td>';
echo '<td bgcolor="#669999"><b>Poste souhaité</b></td>';
echo '<td bgcolor="#669999"><b>Dispo</b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 12 colonnes, 1 résultat par ligne.
$evt_date_comp_affiche = false;
$evt_activite_affiche = false;
$evt_codex_affiche = false;
$evt_nom_affiche = false;
$epr_discipline_affiche = false;
$entite_affiche = false;
$evt_station_affiche = false;
$evt_club_nom_affiche = false;
while($row = mysql_fetch_array($req))
{
if($row['evt_activite'] == 'ALP')//affichage calendrier_regional Alpin
{
$evt_date_comp = date_francaise($row['evt_date_comp']);
$evt_activite = $row['evt_activite'];
$evt_codex = $row['evt_code'];
$evt_nom = $row['evt_nom'];
$epr_discipline = $row['epr_discipline'];
$entite = $row['entite'];
$evt_station = $row['evt_station'];
$evt_club_nom = $row['evt_club_nom'];
$epr_sexe = $row['epr_sexe'];
$epr_categorie = $row['epr_categorie'];
echo '<tr onmouseover="this.style.backgroundColor=\'#FF0000\';" onmouseout="this.style.backgroundColor=\'\';" bgcolor="#CCCCCC">';
if($evt_codex == $evt_codex)
{
if( $evt_date_comp_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_date_comp.'</td>';
$evt_date_comp_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_activite_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_activite.'</td>';
$evt_activite_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_codex_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_codex.'</td>';
$evt_codex_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_nom_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_nom.'</td>';
$evt_nom_affiche = true; // On déclare avoir affiché la catégorie
}
if( $epr_discipline_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$epr_discipline.'</td>';
$epr_discipline_affiche = true; // On déclare avoir affiché la catégorie
}
if( $entite_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$entite.'</td>';
$entite_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_station_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_station.'</td>';
$evt_station_affiche = true; // On déclare avoir affiché la catégorie
}
if( $evt_club_nom_affiche === false ) // La catégorie n'a jamais été affichée
{
echo '<td rowspan="10" >'.$evt_club_nom.'</td>';
$evt_club_nom_affiche = true; // On déclare avoir affiché la catégorie
}
echo '<td >'.$epr_sexe.'</td>';
echo '<td >'.$epr_categorie.'</td>';
echo '<td > <p> <input type="hidden" name="config" value="">
<SELECT name="poste">
<OPTION value="forum1" SELECTED>Tous poste</option>
<OPTION value="forum2" >DT</option>
<OPTION value="forum3" >Chef control.</option>
<OPTION value="forum4" >juge </option>
<OPTION value="forum5" >Piste</option>
<OPTION value="forum6" >starter</option>
<OPTION value="forum7" >Chrono</option></SELECT></td>';
echo '<td > <p> <INPUT TYPE="CHECKBOX" name="options[]" value=""></p> </td>';
}
}
echo '</tr>'."\n";
$compteur = +1;
}
}
}
echo '</table>'."\n";
// echo '<p> Catégorie " * " = catégorie <b> Poussins </b>';
echo '<P>';
// fin du tableau.
if ($compteur != 0)
{
echo '<td bgcolor="#CCCCCC"><p><input type="submit" value="INSCRIRE" name="S1" title="Inscrire"><input type="reset" value="Effacer la selection" name="S2" title="Effacer"></p></td>';
}
echo '</form>';
exit;
if($_SESSION['activite'] == 'fond')//affichage calendrier_regional fond
{
//---------je recopi le memes tableau que celui du haut ----------/
}
exit;
// on ferme la connexion à mysql
mysql_close();
[/code]
[quote] et si c'est possible j'aimerai comme dans ton exemple arriver a avoir un tableau
-----------------------1 ------- numéro 1
catégorie : 1-------1 ------- numéro 1--------------une liste deroulante----------un hidden
-----------------------2 ------- numéro 2
-----------------------3 ------- numéro 3
__________________________________
-----------------------1 ------- numéro 1
catégorie : 2-------1 ------- numéro 1--------------une liste deroulante----------un hidden
-----------------------2 ------- numéro 2
-----------------------3 ------- numéro 3
avec un encadrement unnique pour categorie1 et un pour categorien 2 et un encadrement numero1 numero2 .....
[/quote]-