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 :

[Tableaux] Problème dans tableaux multidimensionnels


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 52
    Points : 45
    Points
    45
    Par défaut [Tableaux] Problème dans tableaux multidimensionnels
    Bonjour à toutes et à tous,

    Je suis toujours avec mon classement par équipe dans mon site de résultats sportifs :

    Suite à mon post :
    http://<br /> http://www.developpez...ighlight=&#91;
    qui résolvait si il n'y avait qu'une équipe en compétition.
    Malheureusement et c'est normal lorsqu'il y a plusieurs équipes cela ne fonctionne pas.
    Dans les clubs on désigne trois sportifs qui font partie de l'équipe, on additionne leurs points et on fait un classement pour l'équipe qui a obtenu le plus haut score, c'est logique
    Voilà donc mon script sans l'affichage:
    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
     
    #Création de l'array
    	$obj_result=array();
     
    #Affichage des résultats par équipe
        print "<table width=720px cellpadding=2 border=1><tr>";
            while ($donneeseqedt = mysql_fetch_array($reponseresulteqedt))
    		    {
     
    				$nom=$donneeseqedt['nom_tireur'];
    				$espace=" ";
    				$prenom=$donneeseqedt['prenom_tireur'];
    				$nomprenom=$nom.$espace.$prenom;
    				$club=$donneeseqedt['nom_club'];
    				$total=$donneeseqedt['total'];
     
    				# création du tableau à plusieurs dimensions
    				if (!isset($obj_result['$club']))
    					{
    					$obj_result['$club']=array(noms=>'array=()',
    											total=>'array=()',
    											totaleqp=>0);
    					}
     
    				array_push($obj_result['$club']['noms'], $nomprenom);
    				array_push($obj_result['$club']['total'], $total);
    				$obj_result['$club']['totaleqp']+=$total;
    				echo '<pre>';
    				print_r ($club);
    				echo '<br>';
    				print_r ($nomprenom);
    				echo '<br>';
    				print_r ($total);
    				echo '<br>';
    				print_r ($obj_result['$club']['totaleqp']);
    				echo '</pre>';
    			}
     
    			$sort_result=array();
    			foreach($obj_result as $club)
    				{
    					$sort_result[$obj_result['$club']['totaleqp']]=$club;
    				}
    			echo '<pre>';
    			print_r ($club);
    			echo '</pre>';
    et voilà ce que cela donne en requete :
    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
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    A.S. Tir Creil BOITEL Anne 234 234
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    Société de Tir de RantignyMENESTRET Pierre 233 467
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    A.S. Tir CreilGRELA Viridiana 231 698
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    La Fraternelle de CuvillyLEVASSEUR Thibault 230 928
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    La Fraternelle de CuvillyRAMBOUR Pascal 220 1148
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    Société de Tir de RantignyHUGOT Guillaume 218 1366
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    Société de Tir de RantignyBIET Julien 215 1581
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    A.S. Tir CreilDORING Morgane 214 1795
     
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 125
    Warning: array_push(): First argument should be an array in d:\gouvieuxtir\test2\Resultats\Ecole\resulteqpecole.php on line 126
     
    La Fraternelle de CuvillySELLIER Marine 209 2004
    Array
    (
        [noms] => array=()
        [total] => array=()
        [totaleqp] => 2004
    )
    Bref il additionne tout et ne tient pas compte de mes arry_push par club.

    Avant de continuer dans ce script, j'aimerais déjà résoudre ce problème.

    Merci beaucoup pour votre aide
    Jean-Mimi

  2. #2
    Membre habitué Avatar de Roromix
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    REMPLACER
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    array_push($obj_result['$club']['noms'], $nomprenom);
    array_push($obj_result['$club']['total'], $total);
    PAR
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $obj_result['$club']['noms'] = array_push($obj_result['$club'], $nomprenom);
    $obj_result['$club']['total'] = array_push($obj_result['$club'], $total);
    Donne moi des nouvelles stp !

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 52
    Points : 45
    Points
    45
    Par défaut
    Hello,

    Bin c'est sur il y a du mieux, déjà je n'ai plus le Warning mais il additionne toujours tous les résultats et il ne tient pas comte des clubs :
    Voilà le résultat :
    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
     
    A.S. Tir Creil BOITEL Anne 234 234
    Société de Tir de Rantigny MENESTRET Pierre 233 467
    A.S. Tir Creil GRELA Viridiana 231 698
    La Fraternelle de Cuvilly LEVASSEUR Thibault 230 928
    La Fraternelle de Cuvilly RAMBOUR Pascal 220 1148
    Société de Tir de Rantigny HUGOT Guillaume 218 1366
    Société de Tir de Rantigny BIET Julien 215 1581
    A.S. Tir Creil DORING Morgane 214 1795
    La Fraternelle de Cuvilly SELLIER Marine 209 2004
    Array
    (
        [noms] => 20
        [total] => 21
        [totaleqp] => 2004
        [0] => BOITEL Anne
        [1] => 234
        [2] => MENESTRET Pierre
        [3] => 233
        [4] => GRELA Viridiana
        [5] => 231
        [6] => LEVASSEUR Thibault
        [7] => 230
        [8] => RAMBOUR Pascal
        [9] => 220
        [10] => HUGOT Guillaume
        [11] => 218
        [12] => BIET Julien
        [13] => 215
        [14] => DORING Morgane
        [15] => 214
        [16] => SELLIER Marine
        [17] => 209
    )
    Merci de ton aide
    Jean-Mimi

  4. #4
    Membre habitué Avatar de Roromix
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 182
    Points : 139
    Points
    139
    Par défaut
    DSL je me suis trompé ! Alors voila

    Remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                # création du tableau à plusieurs dimensions 
                if (!isset($obj_result['$club'])) 
                   { 
                   $obj_result['$club']=array(noms=>'array=()', 
                                     total=>'array=()', 
                                     totaleqp=>0); 
                   } 
     
                array_push($obj_result['$club']['noms'], $nomprenom); 
                array_push($obj_result['$club']['total'], $total);
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                # création du tableau à plusieurs dimensions 
                if (!isset($obj_result['$club'])) 
                   { 
                   $obj_result['$club']=array(noms=>'array=()', 
                                     total=>'array=()', 
                                     totaleqp=>0);
                   $obj_result['$club']['noms']=$obj_result['$club'];
                   $obj_result['$club']['total']=$obj_result['$club'];
                   } 
     
                array_push($obj_result['$club']['noms'], $nomprenom); 
                array_push($obj_result['$club']['total'], $total);

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 52
    Points : 45
    Points
    45
    Par défaut
    J'étais parti faire les courses

    Bin faut pas être désolé, c'est déjà sympa de m'aider

    Bien je viens d'appliquer le dernier code fourni.
    Voilà ce que j'obtiens.
    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
     
    A.S. Tir Creil BOITEL Anne234 234
    Société de Tir de Rantigny MENESTRET Pierre233 467
    A.S. Tir Creil GRELA Viridiana231 698
    La Fraternelle de Cuvilly LEVASSEUR Thibault230 928
    La Fraternelle de Cuvilly RAMBOUR Pascal220 1148
    Société de Tir de Rantigny HUGOT Guillaume218 1366
    Société de Tir de Rantigny BIET Julien215 1581
    A.S. Tir Creil DORING Morgane214 1795
    La Fraternelle de Cuvilly SELLIER Marine209 2004
    Array
    (
        [noms] => Array
            (
                [noms] => array=()
                [total] => array=()
                [totaleqp] => 0
                [0] => BOITEL Anne
                [1] => MENESTRET Pierre
                [2] => GRELA Viridiana
                [3] => LEVASSEUR Thibault
                [4] => RAMBOUR Pascal
                [5] => HUGOT Guillaume
                [6] => BIET Julien
                [7] => DORING Morgane
                [8] => SELLIER Marine
            )
     
        [total] => Array
            (
                [noms] => Array
                    (
                        [noms] => array=()
                        [total] => array=()
                        [totaleqp] => 0
                    )
     
                [total] => array=()
                [totaleqp] => 0
                [0] => 234
                [1] => 233
                [2] => 231
                [3] => 230
                [4] => 220
                [5] => 218
                [6] => 215
                [7] => 214
                [8] => 209
            )
     
        [totaleqp] => 2004
    Il ne tient pas compte du club, il additionne tout

    Merci pour ton aide
    Jean-Mimi

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 52
    Points : 45
    Points
    45
    Par défaut
    Hello,

    Un petit point sur mon souci, le script ressemble à cela :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    #Création de l'array
    	$obj_result=array();
     
    #Affichage des résultats par équipe
        print "<table width=720px cellpadding=2 border=1><tr>";
            while ($donneeseqedt = mysql_fetch_array($reponseresulteqedt))
    		    {
                if ($donneeseqedt["nom_club"] != $gouvieux)
                {
                $affichage="resul";
                }
                else
                {
                $affichage="resulgouv";
                }
     
    				$nom=$donneeseqedt['nom_tireur'];
    				$espace=" ";
    				$prenom=$donneeseqedt['prenom_tireur'];
    				$nomprenom=$nom.$espace.$prenom;
    				$club=$donneeseqedt['nom_club'];
    				$total=$donneeseqedt['total'];
     
    				# création du tableau à plusieurs dimensions 
                if (!isset($obj_result['$club'])) 
                   { 
    					$obj_result['$club']=array(noms=>'array=()', 
    												total=>'array=()', 
    												totaleqp=>0); 
    					$obj_result['$club']['noms']=$obj_result['$club']; 
    					$obj_result['$club']['total']=$obj_result['$club']; 
    				} 
     
    			array_push($obj_result['$club'], $club);  
                array_push($obj_result['$club']['noms'], $nomprenom); 
                array_push($obj_result['$club']['total'], $total); 
    			$obj_result['$club']['totaleqp']+=$total;
     
    			}
     
    			$sort_result=array();
    			foreach($obj_result as $club)
    				{
    					$sort_result[$obj_result['$club']['totaleqp']]=$sort_result['$club'];
    				}
    				echo '<pre>';
    				print_r ($club);
    				echo '<br>';
    				echo '</pre>';
    			foreach($sort_result as $totaleqp)
    				{
    					$club=$sort_result[$obj_result['$club']['totaleqp']];
    						print " <td class=$affichage>";
    							foreach($obj_result['$club']['noms'] as $nomprenom)
    								{
    									print" 	$nomprenom<br>";
    								}
    						print "</td>";
     
    				print" 	<td class=$affichage>
    					$club";
    				print "</td>";
    				print" 	<td align=center class=$affichage>";
    							foreach($obj_result['$club']['total'] as $total)
    								{
    									print" $total<br>";
    								}
    				print" </td>";
    				print "<td align=center class=$affichage>
    					$totaleqp ";
    				}
     
    	print "</tr></table>";
    Et voilà le résultat :
    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
    52
     
    Array
    (
        [noms] => Array
            (
                [noms] => array=()
                [total] => array=()
                [totaleqp] => 0
                [0] => BOITEL Anne
                [1] => GRELA Viridiana
                [2] => DORING Morgane
                [3] => LEVASSEUR Thibault
                [4] => SELLIER Marine
                [5] => RAMBOUR Pascal
                [6] => HUGOT Guillaume
                [7] => BIET Julien
                [8] => MENESTRET Pierre
            )
     
        [total] => Array
            (
                [noms] => Array
                    (
                        [noms] => array=()
                        [total] => array=()
                        [totaleqp] => 0
                    )
     
                [total] => array=()
                [totaleqp] => 0
                [0] => 234
                [1] => 231
                [2] => 214
                [3] => 230
                [4] => 209
                [5] => 220
                [6] => 218
                [7] => 215
                [8] => 233
            )
     
        [totaleqp] => 2004
        [0] => A.S. Tir Creil
        [1] => A.S. Tir Creil
        [2] => A.S. Tir Creil
        [3] => La Fraternelle de Cuvilly
        [4] => La Fraternelle de Cuvilly
        [5] => La Fraternelle de Cuvilly
        [6] => Société de Tir de Rantigny
        [7] => Société de Tir de Rantigny
        [8] => Société de Tir de Rantigny
    )
    d'où un tableau comme cela :
    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
     
    array=()
    array=()
    0
    BOITEL Anne
    GRELA Viridiana
    DORING Morgane
    LEVASSEUR Thibault
    SELLIER Marine
    RAMBOUR Pascal
    HUGOT Guillaume
    BIET Julien
    MENESTRET Pierre
     
      Array
    array=()
    0
    234
    231
    214
    230
    209
    220
    218
    215
    233
    Bref ce n'est pas ce que je veux, je désire que le classement soit fait par résultat total par équipe / par club.
    Là le résultat est fait sur l'ensemble des participants et en plus il ne s'affiche pas.

    De plus pour quoi dans le tableau à l'écran apparait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Array
    array=()
    0
    Merci pour votre aide et passer tous de bonnes fêtes de Noël
    Jean-Mimi

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

Discussions similaires

  1. [Tableaux] Problème dans ma requête UPDATE SET
    Par mickado dans le forum Langage
    Réponses: 7
    Dernier message: 02/05/2007, 23h41
  2. [Tableaux] Problème dans caddie
    Par dldstyle dans le forum Langage
    Réponses: 7
    Dernier message: 31/07/2006, 19h41
  3. [Tableaux] Problème dans ma boucle
    Par Sandara dans le forum Langage
    Réponses: 29
    Dernier message: 28/06/2006, 11h34
  4. [Tableaux] Problème de tableaux
    Par Picco dans le forum Langage
    Réponses: 12
    Dernier message: 03/05/2006, 11h35
  5. Réponses: 2
    Dernier message: 14/09/2005, 13h39

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