tableau dynamique

Petit nouveau ! | 6 Messages

03 août 2011, 07:31

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

ViPHP
xTG
ViPHP | 7331 Messages

03 août 2011, 08:23

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

Petit nouveau ! | 6 Messages

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 .....
-