begin process at 2010 03 21 18:26:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

remplir un array multi dimensions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

remplir un array multi dimensions

mercredi 23 août 2006 à 11:36:39 | remplir un array multi dimensions

mariobotta

bonjour,

je dois réalisé une petite application pour remplir un tableau à plusieurs dimensions avec des info venant d'une table mysql

Mon tableau dois ressembler à cela :

$GLOBALS['administration']=array(
 "titre1"=>array("lien1",array("user1","user2","user3")),
 "titre2"=>array("lien2",array("user1","user2")),
 "titre3"=>array("lien3",array("user1","user2","user3","user4"))
 ...
);

je sais remplir un tableau à une dimension mais je vois pas trop comment faire pour ce cas -ci
while($row=$db->row())
{
array_push($array_global,$row['titre']);
}
echo '<pre>';
print_r($array_global); //Affiche Array()
echo '</pre>';

merci d'avance pour votre aide

mercredi 23 août 2006 à 12:53:30 | Re : remplir un array multi dimensions

malalam

Administrateur CodeS-SourceS
Hello,

ben où est le problème ?
$array[$row['titre']] = array ();
tu auras tes clefs déjà. Après, tes liens et tes users, je sais pas trop d'où tu les pêches donc on peut guère t'aider plus loin.
mercredi 23 août 2006 à 14:53:05 | Re : remplir un array multi dimensions

mariobotta

bonjour,

merci pour ce coup de main

les liens (sous la forme :http:// ... ) et users (sous la forme :1;5;6;8; que j'explode pour récupérer un nom)  viennent aussi d'un base.
Je sais pas trop si ç comme çà?
$array_global=array();

while($row=$db->row())
{
array_push($array_global,$row['titre']);
$array[$row['titre']] = array ();
   while($row=$db1->row())
   {
   array_push($array[$row['titre']] ,$row['liens']);

      while($row=$db2->row())
      {
      array_push($array_global,$row['users']);
      }
   }
}

merci d'avance
mercredi 23 août 2006 à 15:04:28 | Re : remplir un array multi dimensions

malalam

Administrateur CodeS-SourceS

Ben essaye lol...mais à priori oui c'est ça

mercredi 23 août 2006 à 15:31:30 | Re : remplir un array multi dimensions

malalam

Administrateur CodeS-SourceS
Heu nan attends j'avais mal lu!!

$array_global=array();

while($row=$db->row())
{
$array_global[$row['titre']] = array ();
   while($row1=$db1->row())
   {
   $array_global[$row['titre']] = array ($row1['liens'] => array ());

      while($row2=$db2->row())
      {
      $array_global[$row['titre']][$row1['liens']][] = $row2['users'] ;    
      }
   }
}

mais à mon avis, tu peux tout avoir en 1 seule requête.
mercredi 23 août 2006 à 16:12:12 | Re : remplir un array multi dimensions

mariobotta

Merci pour ton aide

Je pense avoir la solution
elle m'affiche:
Array
(
    [0] => titre1
    [1] => Array
        (
            [0] => lien1
            [1] => Array
                (
                    [0] => users1
                    [1] => user2
                )

        )

    [2] => titre2
    [3] => Array
        (
            [0] => lien2
            [1] => Array
                (
                    [0] => user1
                    [1] => user2

                )

        )
)

Par contre est ce logique les indices des titres?

merci pour ton aide

mercredi 23 août 2006 à 17:50:13 | Re : remplir un array multi dimensions

malalam

Administrateur CodeS-SourceS
Tu as fait quel code ?
jeudi 24 août 2006 à 09:46:34 | Re : remplir un array multi dimensions

mariobotta

bonjour,

encore un grand merci pour ton aide et le temp que tu y consacres.
voici le code il est court donc je met tout :

require_once($_SERVER['DOCUMENT_ROOT'].'/phplib/layout.php');
session_start();//test
 //get_header(68);
$table='ariane';
$array_global=array();
 $db= new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
 $db->query("SELECT * FROM $table WHERE `parentID`=8 ORDER BY titre ASC");
 $t=0;
 while($row=$db->row())
 {
 array_push($array_global,$row['titre']);
 $array_url = array ();
 $array_prenom = array ();
  $db2= new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
  $db2->query("SELECT * FROM $table WHERE `parentID`=8 AND ID=".$row['ID']." ORDER BY titre ASC");
  while($row=$db2->row()){
  $array_users = array ();
  //rempli la table titre avec la table des link
  array_push($array_url,$row['url']);
   //1°réalisation d'un tableau avec acces de l'admin
   $db_acces=new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
   $db_acces->query("SELECT `nom`,`module` FROM users_test");
    while( $row_acces=$db_acces->row())
    {
     //echo $t.$row_acces['nom'].':'.$row_acces['module'].'<br>';
     $explode=explode(";",$row_acces['module']);//tableau avec acces de l'admin
      for($h=0;$h<(count($explode)-1);$h++)
      {
       if($explode[$h]==$row['ID']){
       //echo $explode[$h].'<br>';
       //remplir table avec les users
       array_push($array_users,$row_acces['nom']);
       }
      }
    }
    $db_acces->destroy();
  array_push($array_url,$array_users);
  array_push($array_global,$array_url);  
  }
 $t++;
 }//while1
$GLOBALS['administration']=$array_global; 
echo '<pre>';
print_r($GLOBALS['administration']); //Affiche Array()
echo '</pre>';
jeudi 24 août 2006 à 11:18:13 | Re : remplir un array multi dimensions

malalam

Administrateur CodeS-SourceS
Pourquoi tu t'obstines avec array_push...?
jeudi 24 août 2006 à 12:06:32 | Re : remplir un array multi dimensions

mariobotta

Réponse acceptée !
bonjour,

je l'utilise souvent pour remplir des tableaux

J'ai toujour un soucis mais je me rapproche d'une solution car l'autre que j'ai donner plus haut n'est pas bonne.
le premier tableau devrait être indicé avec le titre mais il me met des incide classique (0,1,2,..)
Je dois avoir un prob dans la première boucle
voici le code
$array_global=array();
$array_titre=array();
 $db= new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
 $db->query("SELECT * FROM ariane WHERE `parentID`=8 ORDER BY titre ASC");
 $t=0;
 while($row=$db->row())
 {
 $array_titre[$row['titre']] = array ();
  $db2= new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
  $db2->query("SELECT * FROM ariane WHERE `parentID`=8 AND ID=".$row['ID']." ORDER BY titre ASC");
  while($row=$db2->row()){
  array_push($array_titre[$row['titre']],$row['url']);
  $array_users = array ();
   //1°réalisation d'un tableau avec acces de l'admin
   $db_acces=new db(USERNAME,PASSWORD,DATABASE,HOSTNAME);
   $db_acces->query("SELECT `nom`,`module` FROM users_test");
    while( $row_acces=$db_acces->row())
    {
     $explode=explode(";",$row_acces['module']);//tableau avec acces de l'admin
      for($h=0;$h<(count($explode)-1);$h++)
      {
       if($explode[$h]==$row['ID']){
       //remplir table avec les users
       array_push($array_users,$row_acces['nom']);
       }
      }
    }
    $db_acces->destroy();
  //rempli la table url avec la table users
  array_push($array_titre[$row['titre']],$array_users);
  //rempli la table globale avec la table users
  array_push($array_global,$array_titre[$row['titre']]);  
  }
 $t++;
 }//while1
$GLOBALS['administration']=$array_global; 

Array
(
    [0] => Array //cette indice devrait être un titre ex [titre1]=>array
        (
            [0] => /admin/fruit/fruit.php
            [1] => Array
                (
                    [0] => Krafft
                    [1] => Noel
                    [2] => Cors
                )

        )

    [1] => Array //cette indice devrait être un titre ex [titre2]=>array
        (
            [0] => /admin/pdt/pdt.php
            [1] => Array
                (
                    [0] => Krafft
                    [1] => Noel
                )

        )

merci d'avance

1 2

Cette discussion est classée dans : tableau, remplir, array, dimensions, user1


Répondre à ce message

Sujets en rapport avec ce message

tri tableau 2 dimensions [ par lebobby ] Bonjour je voudrais savoir comment je pourrais faire pour trier ce tableau :$tab[0]=array("i"=>"23", "c" => "rge", "date" =>'2002-08-03 12:00:00');$ta Tableau a deux dimensions [ par hicksman ] salut,comment faire pour mettre le resultat d'une requete select dans un tableau a deux dimensions.en fait je eux que le résultat de ma boucle while($ pb tableau HTML [ par Joez ] Bonjour voila, je dois remplir un tableau HTML ( 4 x 4 ) en remplissant ligne par ligne. Comment faire pour remplir d'abord les 4 premieres cellules d [MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ] Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta probleme array tableau [ par guiguipumpkin ] bonjour,je ne trouve pas la fonction php qui permet de supprimer un element d'un tableau array, suivant un indice iun peu comme array_shift mais en po incrementation difficile [ par charly25 ] bonjou ou bonsoir (je suis plus tres sur...)j'essaye actuellement de lier des menus deroulants (la selection dans l'un agit sur l'autre et vice versa) Script de sondage évolué avec tableau à 2 dimensions [ par regisgo ] Bjr à tous,Je cherche désespérement un script php de sondage évolué sous la forme de tableau à 2 dimensions :Exemple : Ceci est la question du sondage Remplir un tableau automatiquement et l'incrémenter [ par benz038 ] Salut a tous Je voudrai savoir comment je peux faire pour remplir un tableau en selectionnant un code dans une liste déroulante est cela me remplirai Fonction callback et classes [ par malalam ] Salut :-)J'ai un petit soucis : je veux utiliser array_filter() dans une fonction membre d'une classe.J'ai defini ma fonction callback dans cette meme comparer array et requête [ par alecto ] Bonjour à tous et merci d'avance pour ceux qui pourront m'aider, voici mon pb :  <?xml:namespace prefix = o ns


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales