[RESOLU] [PHP] probleme nombre de ligne d'un tableau variable

Eléphanteau du PHP | 36 Messages

28 juil. 2014, 09:05

Bonjour,

je désire faire varier le nombre de ligne d'une cellule en fonction du nombre de mot contenu dans un array.

voici la portion du code :
  $SQL="SELECT numero, prestation, type, norme, modeop, materiel, activite, etalon FROM Table_Competences WHERE numero=$prestation";
  $Resultatdocquali= odbc_exec($id_connexion,$SQL);
  print("<table border cellspacing=0 bgcolor=#FFFFFF>\n");
  print("<tr>\n");
   print("<td align=center><b><font size=2>INTITULE</font></b></td><td align=center width=400><b><font size=2>ELEMENTS A MAITRISER</font></b></td><td align=center width=600><b><font size=2>APPRECIATION DE L'EVALUATEUR</font></b></td></td><td align=center width=20><b><font size=2>1</font></b></td><td align=center width=20><b><font size=2>2</font></b></td><td align=center width=20><b><font size=2>3</font></b></td><td align=center width=20><b><font size=2>4</font></b></td>\n");
     while (odbc_fetch_row($Resultatdocquali)) {

           $activite=odbc_result($Resultatdocquali,"activite");
           $type=odbc_result($Resultatdocquali,"type");
           $prestation=odbc_result($Resultatdocquali,"prestation");

           print("<tr>\n");
           print("<td align=center>");
           print("<font size=2>");
           echo("Connaissance de la norme et des référentiels");
           print("</td>");
           $norme=odbc_result($Resultatdocquali,"norme");
           print("<td align=center>");
           print("<font size=2>");
           if ($norme=="") {$norme="...";}
           $norme1=explode(",",$norme);
	   foreach($norme1 as $cle=>$valeur)
           {
           echo $cle ,' : ', $valeur ,'<br/>';
           }
           print("</a></b></font>");
           print("</td>\n");
           print("<td align=center><font size=2>...</a></b></font></td>\n");
           print("<td align=center><font size=2>...</a></b></font></td>\n");
           print("<td align=center><font size=2>...</a></b></font></td>\n");
           print("<td align=center><font size=2>...</a></b></font></td>\n");
           print("<td align=center><font size=2>...</a></b></font></td>\n");
           print("</tr>\n");
Le tableau comporte 7 colonnes. dans la 2ieme colonne intitulé "éléments à maitrisé" j'ai un nombre variable de norme qu'il va rechercher dans une cellule d'une base access. j'aimerai avoir dans la 2ieme colonne, ainsi que dans les 3ieme, 4,5, 6 et 7ieme, autant de ligne qu'il y a de normes (mot) dans la cellule access. (pour le moment dans ces 3ieme à 7ieme colonne je ne fais apparaître que "...")

je ne sais pas si j'ai été assez clair? Voici une photo :
exemple tableau (2).jpg
Merci d'avance pour votre aide.

Paolino
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Mammouth du PHP | 1339 Messages

28 juil. 2014, 13:01

Et ces lignes contiennent quoi ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 2278 Messages

28 juil. 2014, 13:12

Si je comprends bien, il aut forcer un saut de ligne après chaque norme :
"norme1<br />norme2"... etc
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 36 Messages

28 juil. 2014, 13:16

oui je veux dans cette exemple qu'il y ait à partir de la colonne 2 jusque la ligne 7 : 4 lignes (1 par norme) au lieu d'une seule qui contient l'ensemble des 4 normes.

dans mon fichier de donnée access, certaines cellules pourront contenir au moins 15 normes. le nombre de ligne ne sera donc jamais le même. c'est là que je bloque...

merci d'avance pour ton aide.

Paolino

Mammouth du PHP | 1339 Messages

28 juil. 2014, 14:22

Si ca marche sur collone 2 ca marchera sur les autres non ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 2278 Messages

28 juil. 2014, 14:35

Il y a bien une solution c'est de
calculer pour chaque cellule qui peut être divisée en combien de lignes elle doit l'être
calculer de combien de lignes max tu as besoin pour un élément donné (spanmax)

ca donne un truc de ce genre:
<table border ='1'>
<tr>
		<th>Nom</th>
		<th>variétés</th>
		<th>autres</th>
</tr>
<tr>
	<td rowspan = '4'  style = 'border:red solid thin'>
		Bidule 1
	</td>

	<td>
		Variante 1
	</td>

	<td rowspan = '1' style = 'border:green solid thick'>
		Chose 1 de bidule 1 
	</td>
</tr>

<tr>
	<td>
		Variante 2
	</td>
	<td>
		Chose 2 de bidule 1 
	</td>
</tr>
<tr>
	<td>
		Variante 3
	</td>
</tr>
<tr>
	<td>
		Variante 4
	</td>
</tr>

</table>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 36 Messages

28 juil. 2014, 15:32

Ok je n'avais pas pensé à rowspan...

par contre le nombre derriere rowspan va dépendre du nombre de norme donc du nombre de cle [0], [1]...il s'agit du dernier élément de la boucle foreach.

je vais essayer d'avancer dans ce sens.

merci pour votre aide.

paolino

Eléphanteau du PHP | 36 Messages

31 juil. 2014, 07:52

Bonjour,

je laisse tomber ce topic, je ne l'ai pas résolu mais je n'en ai plus l'utilité pour le moment....

merci de votre aide.

paolino