Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2412 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Tableau multidimensionnelle php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau multidimensionnelle php

n°1991943
popouec
Posté le 10-05-2010 à 18:39:24  profilanswer
 

bonjour,
je débute dans la programmation de class en php et  j'ai un soucis pour la création de tableaux multidimensionnelles en php.En fait je veux contruire des tableaux de données avec leur clés primaires : j'ai du laissé mon code avec des données en "dure" :
  FOR($j=0;$j<$nb_colonnes;$j++)  {
                 $INF_LIGNE[$i][$tab_colonnes[$j]] = $p_TAB_RESULT[$i][$tab_colonnes[$j]];
      switch ($nb_param) {
      case 1:    $INF[$tab_key_param[0]['PARAM0']][$tab_colonnes[$j]]=$p_TAB_RESULT[$i][$tab_colonnes[$j]];
      break;
      case 2:    $INF[$tab_key_param[0]['PARAM0']][$tab_key_param[1]['PARAM1']][$tab_colonnes[$j]]=$p_TAB_RESULT[$i]lonnes[$j]];
           break;
      case 3:    $INF[$tab_key_param[0]['PARAM0']][$tab_key_param[1]['PARAM1']][$tab_key_param[2]['PARAM2']][$tab_colonnes[$j]]=$p_TAB_RESULT[$i][$tab_colonnes[$j]];
     break;
        ...      }
     }//FIN COLONNES

 
J'ai essayé de faire une fonction :   function encapsuleKey($tab_key_param[$i]['PARAM'.$i],$tableau)
   {  
    $tab=null;
     return $tab[$i_key]=$tableau;    
   }

 
pour résoudre le problème et enlever la partie case et switch mais y a quelque chose qui m'échappe car je n'ai pas toutes les données ...  cela ne fonctionne pas correctement ...
puis-je avoir un avis sur ces fonctions et ma façon d'utiliser ces tableaux ?  
 
merci d'avance.


---------------
popouec
mood
Publicité
Posté le 10-05-2010 à 18:39:24  profilanswer
 

n°1992046
rufo
Pas me confondre avec Lycos!
Posté le 11-05-2010 à 09:52:22  profilanswer
 

1) j'ai rien compris à ton charabia, merci de t'exprimer dans un français intelligible,
2) merci d'utiliser les balises [code] quand tu postes du code et pas utiliser une couleur aussi peu lisible (ça explose les yeux!)
3) ta fonction encapsuleKey() est franchement magique!  
le prototype d'une fonction n'acceptes que des noms de variables, toi, t'y mets des valeurs
$tab=null;   <- ça sert à rien vu que $tab n'existe pas de toute manière
$i_key <- pas déclaré


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1992681
popouec
Posté le 12-05-2010 à 17:05:44  profilanswer
 

bonjour,
 
Désolée si je me suis mal exprimée, je vais mieux expliquer le problème sur ma table à plusieurs clés :
 
Je veux tout simplement organiser les données d'un table dans un tableau  :
 
 exemple  : $TAB['key0']['key1']['key2']['key...n']['nom_colonne'] = $valeurColonne
 
comme le nombre "n" est en fonction de la table j'ai du coder :
 
   switch (n) :
               case 1: $TAB['key0']['nom_colonne'] = $valeurColonne
              case 2: $TAB['key0']['key1']['nom_colonne'] = $valeurColonne
              case 3: $TAB['key0']['key1']['key2']['nom_colonne'] = $valeurColonne
 
Il est claire que si n = 4 je dois rajouter dans le code :
 
                      case 4: $TAB['key0']['key1']['key2']['key3']['nom_colonne'] = $valeurColonne
         
et aini de suite ...  
 
pour l'instant j'ai 6 clés dans une des tables :
 
  case 6: $TAB['key0']['key1']['key2']['key3']['key4']['key5']['nom_colonne'] = $valeurColonne
 
Il est claire que c'est lourd comme code !
 
c'est pour cela que je voudrais qu'on m'explique comment je peux écrire  une fonction récurcive pour remplacer cela  :
   
      ['key0']['key1']['key2']['key3']['key4']['key5']...['keyn']
 
 
 
merci.
 
(j'espère que c'est un peu plus claire).

n°1993434
stef_dober​mann
Personne n'est parfait ...
Posté le 16-05-2010 à 14:28:00  profilanswer
 

Pourquoi ne pas passer par de l'objet en créant une classe pour gérer ça ?
je pense que se sera plus simple et surtout plus propre ;)
 
on peut voir la structure de ta table ?


Message édité par stef_dobermann le 16-05-2010 à 14:29:35

---------------
Tout à commencé par un rêve...
n°1993500
popouec
Posté le 16-05-2010 à 21:26:06  profilanswer
 

En fait cette application doit être utilisée pour n'importe quelle table de ma base de données.
J'ai déjà commencé à écrire une class qui me permet de prendre n'importe quelle table pour afficher les données .
Mais j'essaie de trouver une méthode (récurssive) pour gérer les clés.
voici un exemple d'une de mes tables :
 
CREATE TABLE `db_p_p_formulaire` (
  `ID_PROJET` int(4) NOT NULL,
  `ID_PAGE` int(10) NOT NULL,
  `ID_FORMULAIRE` int(5) NOT NULL,
  `ID_TYPE_AFF` int(5) default NULL,
  `TYPE_trait` int(1) NOT NULL,
  `trait_nb_aff` int(2) NOT NULL,
  `htm_name` varchar(50) collate utf8_bin NOT NULL,
  `db_methode` varchar(4) collate utf8_bin NOT NULL,
  `db_action` varchar(500) collate utf8_bin NOT NULL,
  `b_javascript` tinyint(1) NOT NULL,
  `J_function_nom` varchar(30) collate utf8_bin default NULL,
  `db_table` varchar(50) collate utf8_bin default NULL,
  PRIMARY KEY  (`ID_PROJET`,`ID_PAGE`,`ID_FORMULAIRE`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
 
Ici j'ai une clé primaire avec trois éléments : (`ID_PROJET`,`ID_PAGE`,`ID_FORMULAIRE`)

n°1993601
rufo
Pas me confondre avec Lycos!
Posté le 17-05-2010 à 10:19:11  profilanswer
 

Tu pourrais nous dire ce que tu veux faire exactement, en fait, par ce que ton tableau à je sais pas combien de clés (et en plus, ce nombre semble pouvoir changer d'une ligne à l'autre de ton tableau) me paraît bizarre :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1993686
stef_dober​mann
Personne n'est parfait ...
Posté le 17-05-2010 à 14:28:23  profilanswer
 

voila c'est ça, je ne savais pas comment le formuler sans froisser ;)


---------------
Tout à commencé par un rêve...
n°1993812
rufo
Pas me confondre avec Lycos!
Posté le 17-05-2010 à 17:36:25  profilanswer
 

popouec, là, tu nous as exprimé une solution technique et non un besoin. Je pense qu'il vaudrait mieux que tu nous exprimes le besoin initial, comme ça, on pourra te proposer une bonne solution technique. Parce que là, je pense que tu nous induits en erreur et donc, on va pouvoir te proposer que qq chose de bancal...
 
C'est comme si tu nous disais : j'ai un gros fichier excel et je veux écrire une macro pour manipuler les données + une petite IHM. En fait, dans ce cas, le besoin est inital est "j'ai des données que j'ai besoin de manipuler/filtrer via une IHM". Le fichier excel + macro est une solution technique mais une solution bien meilleure serait de passer par une base de données genre mysql et une ihm web (par ex). ;) Avec le ficheir excel, ça va être galère, alors qu'avec une BD + SQL, ça va être facile.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1995505
stef_dober​mann
Personne n'est parfait ...
Posté le 24-05-2010 à 00:15:10  profilanswer
 

plus de nouvelles => bonne nouvelles ?


---------------
Tout à commencé par un rêve...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Tableau multidimensionnelle php

 

Sujets relatifs
Pb d'enregistrement en base d'un tableau linéarisé[VBA-Access] Tableau dont on ne connait pas Nb de lignes
Supprimer une "colone" dans un tableauInitialisation de tableau
aide pour tableau php !Langage C : passage d'un tableau à une fonction
[php] Problème affichage tableau avec timerTransformation d'un tableau (fichier xml vers html)
[VBA] remplir une colonne excel avec une variable tableauRemplir un tableau associatif vide au départ (et puis l'afficher)
Plus de sujets relatifs à : Tableau multidimensionnelle php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR