Page 1 sur 1

tableau dynamique

Posté : 03 août 2011, 07:31
par steph11574
Bonjour j'ai un soucis pour creer un tableau dynamique avec des valeurs qui sont recuperer dans une base et certaine cellule serait fusionnr pour eviter d'avoir le résultat afficher x fois

j'ai une table calendrier ou il y a des evenements qui comprenne plusieurs epreuves exemple

Code : Tout sélectionner

code evt / activite / nom de l'evenement / sexe / categorie 12356 / alpin / grand prix / t / poussin 12356 / alpin / grand prix / f / senior 12356 / alpin / grand prix / m / senior 12356 / alpin / grand prix / f / veteran 12356 / alpin / grand prix / fm / veteran
je voudrais arriver a avoir se resultat

Code : Tout sélectionner

/ t / poussin / f / senior 12356 / alpin / grand prix / f / sen hidden / f / veteran / m / veteran
je vous met lecode completque j'ai créer
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.
				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">';
               echo '<td >'.$evt_date_comp.'</td>';
			   echo '<td >'.$evt_activite.'</td>';
			   echo '<td >'.$evt_codex.'</td>';
			    echo '<td >'.$evt_nom.'</td>';
                echo '<td >'.$epr_discipline.'</td>';
                echo '<td >'.$entite.'</td>';
                echo '<td >'.$evt_station.'</td>';
                echo '<td >'.$evt_club_nom.'</td>';
                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>';
				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>';
				}
 		 exit;
		 echo '</form>';
si quelqu'un pouvait m'aider merci d'avance

Re: tableau dynamique

Posté : 03 août 2011, 08:23
par xTG
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

Re: tableau dynamique

Posté : 04 août 2011, 00:38
par steph11574
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 .....
-