IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Affichage sous forme d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut Affichage sous forme d'un tableau
    Bonjour à toutes et à tous !

    Voila ! Je suis en IUT info, donc soyez indulgent

    Pour faire simple, j'aimerai exploiter mon tableau en php, sous la forme d'un tableau en html. Sauf que je n'arrive pas a afficher les valeurs comme je le souhaite !

    Voila un exemple :
    Mon tableau => 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10

    J'aimerais afficher comme ca sous html

    0 | 4 | 8
    1 | 5 | 9
    2 | 6 | 10
    3 | 7 |
    Et ainsi de suite
    Je ne sais pas si je suis clair, c'est un problème d'algo plus que d'affichage. Voila mon code pour le moment....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    	<tr> <!-- MES COLONNES -->
    		<td> Enonce des Questions </td>
    		<td> Code Page </td>
    		<td> occBadRep </td>
    <?php
    	$cptAffTypes = 0; //Pour TITRE du tableau
    	while($cptAffTypes < $cptLesTypes)
    	{
    ?>
    		<td><?php echo $arrLesTypes[$cptAffTypes];?></td><!-- LES TYPES -->
    <?php
     
    	$cptAffTypes++;
    	}
    ?>
    		<td> pCBadRep </td>
    	</tr>
    <?php
    	$cptPrincipalDuWhile = 0;
    	$cptIncSix = 0;
    	$cptMax= 0;
    	while($row = mysqli_fetch_assoc($resuToutesLesQuestions))
    	{
    ?>
    		<tr>
    			<td><?php echo $row['Enonce_Question'];?></td>
    			<td><?php echo $row['Code_Page'];?></td>
    			<td><?php echo $arrNbBadRepTotal[$cptPrincipalDuWhile];?></td>
     
    <?php
    	$cptBouclePourTypes = 0; //Pour remplir les cases
     
     
    		While($cptBouclePourTypes < $cptLesTypes)
    		{
    ?>
    			<td><?php echo ($arrNbRepFauxParType[$cptIncSix]/$arrNbBadRepTotal[$cptPrincipalDuWhile])*100 ." %";
    							echo "<br />".$arrNbRepFauxParType[$cptIncSix];//SUIVI DE LA VARIABLE POUR LE TEST?></td>
    <?php
    		$cptBouclePourTypes++;
    		$cptIncSix++;
    		}
    ?>
    			<td><?php echo ( $arrNbBadRepTotal[$cptPrincipalDuWhile] / $arrNbRepTotal[$cptPrincipalDuWhile] )*100 ."%";?></td>
    		</tr>
    <?php
    		if($cptIncSix%$cptLesTypes==0)
    				{
    					$cptPrincipalDuWhile++;
    				}
    Je suis un peu coincé ces derniers temps dessus >.<

    Bref, si je suis pas clair merci de me demander x)
    Je vous remercie pour vos pistes !

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    J'adooooooooore ce genre de trucs.
    Et si on faisait un premier tableau PHP avec des abcisses et des ordonnées ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $nbs=array(0,1,2,3,4,5,6,7,8,9,10);
    $reOrders=array();
    $i=0;
    $x=1;
    $y=1;
    foreach($nbs as $nb){
    	if($nb%4==0 && $i>0){
    		$y=1;
    		$x++;
    	}
    	$reOrders[$i]['x']=$x;
    	$reOrders[$i]['y']=$y;
    	$i++;
    	$y++;
    }
    echo '<pre>';
    print_r($reOrders);
    echo '</pre>';
    Je cogite la suite, à partir de tableau réordonné, produire le tableau html ou un tableau PHP intermédiaire... j'hésite encore...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Bon, voilà, je te propose cette fonction qui marchera quel que soit le nombre de valeur dans ton tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    function reOrder($tab,$nbLignes){
    	//on fait un tableau PHP avec les coordonnées que l'on souhaite
    	$reOrders=array();
    	$i=0;
    	$x=1;
    	$y=1;
    	foreach($tab as $val){
    		if($val%$nbLignes==0 && $i>0){
    			$y=1;
    			$x++;
    		}
    		$reOrders[$i]['x']=$x;
    		$reOrders[$i]['y']=$y;
    		$i++;
    		$y++;
    	}
    	//on dessine le tableau HTML en fonction 
    	$maxX=ceil(sizeof($tab)/$nbLignes);
     
    	$t='<table><tr>'."\n";
    	for($y=1;$y<=$nbLignes;$y++){
    		for($x=1;$x<=$maxX;$x++){
    			foreach($reOrders as $indice=>$tab){
    				if($tab['x']==$x && $tab['y']==$y){
    					$t.='<td>'.$indice.'</td>'."\n";
    				}
    			}
    		}
    		$t.='</tr><tr>';
    	}
    	//enlever le dernier <tr> ouvrant
    	$t=substr($t,0,-4);
    	$t.='</table>';
    	return $t;
     
    }
    $nbs=array(0,1,2,3,4,5,6,7,8,9,10);
    $tabHtml=reOrder($nbs,4);
    echo $tabHtml;
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nbs=array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
    $tabHtml=reOrder($nbs,2);
    echo $tabHtml;
    donnera
    0 2 4 6 8 10 12 14 16
    1 3 5 7 9 11 13 15
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Hahaha, ca fait plaisir de voir que mon problème a donné de l'enthousiasme ! J'ai eu beau réfléchir j'étais vraiment loin de la solution Je te remercie en tout cas ! Je m'en vais de ce pas tester ta solution

    Regarde sur le joli site où je suis tombé hier soir http://j-reaux.developpez.com/tutori...bleau-html/#LV
    Heureusement que cela ne t'a pas déranger de plancher dessus Je devrais déjà apprendre à chercher avant x) Mais, promis, je test d'abord ta fonction, c'est la moindre des choses

    Bon, je pense que je peux le passer en résolu, merci à toi et au temps passé !

  5. #5
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Désolé pour le double post, je viens de tester ta fonction, je remarque un truc, sans comprendre commment le corriger car j'ai pas encore tout saisi à ton code x) J'ai 128 lignes à faire (grosso modo, pour le moment j'ai testé avec une valeur brute). Voila ce que sa donne
    0 381 392 509 520 637
    1 382 393 510 521 638
    2 383 394 511 522 639
    3 384 395 512 523 640
    4 385 396 513 524 641
    5 386 397 514 525 642
    6 387 398 515 526 643
    7 388 399 516 527 644
    8 389 400 517 528 645
    9 390 401 518 529 646
    10 391 402 519 530 647
    11 403 531 648
    12 404 532 649
    13 405 533 650
    14 406 534 651
    15 407 535 652
    16 408 536 653
    17
    etc...

    Je vais continuer à me battre avec ton code encore un peu, pui s'il me résiste trop en attendant tes conseils, je passerais à ceux proposé sur le site

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Ne perds pas de temps avec ma fonction, elle n'a pas grand intérêt car ne traite que les nombres.
    Le tuto de Jreaux traite lui de la problématique de fond.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  7. #7
    Membre du Club
    Homme Profil pro
    Etudiant(IUT info)/Stagiaire
    Inscrit en
    Mai 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant(IUT info)/Stagiaire

    Informations forums :
    Inscription : Mai 2013
    Messages : 49
    Points : 47
    Points
    47
    Par défaut
    Ok Ok Je te remercie encore une fois, en te souhaitant une bonne continuation.

  8. #8
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Et merci à toi pour le lien vers le tuto, je vais étudier ça.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] affichage sous forme d'un tableau
    Par abdourazak dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 21/05/2014, 17h51
  2. affichage sous forme d'un tableau
    Par rezguiinfo dans le forum Langage
    Réponses: 4
    Dernier message: 15/08/2012, 09h36
  3. affichage sous forme d'un tableau?
    Par scoubi32006 dans le forum C++Builder
    Réponses: 10
    Dernier message: 18/04/2009, 20h53
  4. Réponses: 2
    Dernier message: 15/12/2006, 10h31
  5. [MySQL] Problème d'affichage sous forme de tableau
    Par mogway95 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/03/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo