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 :

Dimensions de tableaux


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut Dimensions de tableaux
    Bonjour à tous,

    J'ai un petit problème de tableaux, et j'aime pas ça ( les tableaux, bien sur ) les problèmes eux j'ai l'habitude.

    Alors avant totue vchose je travaille sous Delphi For Php donc tout code sera "bizarre si demandé".

    LE but de la manoeuvre est avant tout de remplir un treeview(arbre déroulable), composant du framework ci dessus.

    Donc je fait un tableau comportant les sites.
    Pour chaque case du tableau je fais un $tableau['Items'][] et la je remplis avec les batiments correspondants.

    Mais je dois encore faire de même pour les étages et les locaux correspondants.

    Hors si je refait $tableau ['Items'][] ils me rajoutent les etages comme fils du site et non comme noeud du batiment.

    J'ai essayé $tableau ['Items']['Items'][] mais ce n' est apparemment pas la bonne solution. Comment faire pour rajouter une dimension à ce tableau ?

    Qui est deja sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array ( [0] => Array ( [Caption] => Mairie 1 
    [Items] => Array ( 
    [0] => Array ( [Caption] => Ecole M1 ) 
    [1] => Array ( [Caption] => Hotel de Ville ) ) ) )
    Il en est de même avec les autres sites et les batiments correspondants.

    Merci par avance pour vos conseils.
    Amicalement, descurai

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca serait $tableau ['Items'][x]['Items'][]

    par exemple $tableau ['Items'][1]['Items'][] pour les etages de l'hotel de ville

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Merci du dévouement, mais cela ne marche pas, ça me kickes le nom des sites et des batiments. Je crois qu'il va me faire ramer ce treeview^^

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux nous montrer de quelle manière tu as ajouté l'étage ?

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $items['Items'][$a]['Items'][]= array('Caption'=>$etage);
    J'avais fait un erreur mais toujours est il que j'ai les étages qui s'affichent dans le premier bâtiment mais pas dans le second.

    De plus ça me rajoute pas les bons étages au niveau des bâtiments.
    Je crois que j'ai un petit problème.

    je fais comme ça pour ajouter un étage :

    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
    function stringEtage ($sender, $params)
           {
           $a=0;
           $items=$sender; // Tableau de la string
           $var2 =$params;  //Nom du Batiment
     
           //REQUÊTE SQL
           $this->Query3->close();
           $dc = $this->Datasource3->DataSet;
           $this->Query3->SQL = "SELECT DISTINCT NOM_ETAGE
           FROM ETAGE_PAR_BATIMENT,BATIMENT,LOCAL
     
           WHERE LOCAL.CODE_ETAGE=ETAGE_PAR_BATIMENT.CODE_ETAGE
           AND LOCAL.CODE_BAT=BATIMENT.CODE_BAT AND UPPER(NOM_BAT) =UPPER('$var2')";
     
           $this->Query3->open();
           $dc->first();
     
                //BOUCLE SUR LES ETAGES
                while(!$dc->EOF)
                {
                    $etage=$dc->NOM_ETAGE;
                    $items['Items'][$a]['Items'][]= array('Caption'=>$etage);
     
                    $dc->next();
                }
                $a=$a+1;
                return $items;
            }
    Si t'arrives pas à déchiffrer fais moi signe , merci de l'intérêt que tu portes à mon problème.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La tu ajoutes toujours sur le batiment 0 puisque $a = 0; au début de ta fonction.

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Ah ouaibien vu, mais si je la met pas a 0 ça marche pas, ça me créé un autre batiment et ça me met les étages dedans. Comment faire ?

    Sachant que j'ai le nom du batiment en paramètre, je pensais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    $items['Items'][$nomdubatiment]['Items'][]= array('Caption'=>$etage);
    Mais cela ne marche pas non plus. Une idée ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose qu'un immeuble dans ta table a un ID.
    Plutot que de mettre un index automatique à ton tableau ($tableau['Items'][]) tu pourrais indexer avec l'id de la table ($tableau['Items'][$id]).

    Cela te permettrait ensuite, plutot que d'envoyer le nom du batiment à ta fonction, d'envoyer son ID.
    Tu ferrais ainsi ta requete d'etage sur le critere de l'ID de l'immeuble, et créer l'element dans le tableau au bon endroit (toujours en utilisant l'id de la table plutot qu'un id automatique)
    $tableau['Items'][$id]['Items'][$id_etage] = ...

    EDIT par rapport a ce que tu as repondu
    --
    C'est tout à fait ce principe sauf qu'attention aux guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $items['Items'][$var2]['Items'][]= array('Caption'=>$etage);
    Il est toutefois préférable d'utiliser un id numérique plutôt qu'un nom (pas de problème de caractères, encodage ou doublons)

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Points : 28
    Points
    28
    Par défaut
    Je vais tester ça, je te remercie de l'info. A peluche je te tiens au jus

    Edit de même, ouai je me doutais aussi qu'il allait encore falloir que je desalshes et cetera donc j'essaye de faire avec les codes batiments. Merci encore.

    EDIT 2 : C'est la merde mec ^^

    Quand je le remplis je fais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $items['Items'][$codebatiment]= array('Caption'=>$batiment);
    Et quand je le remplis je fais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $items['Items'][$codebatiment]['Items'][]= array('Caption'=>$etage);
    Mais le problème persiste, mais cette fois ci à l'envers.
    Je n'ai que les étages du second bâtiment.
    Je crois que lorsque j'arrive a finir ce truc je vais être heureux. Allez a plus

  10. #10
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Salut,
    Vu la structure voulue, il serait peut-être salvateur de passer en objets.
    Une sorte d'implémentation simplifiée du Composite me semble appropriée pour ce genre de situation.
    Un peu de lecture sur le sujet : http://devzone.zend.com/article/7

Discussions similaires

  1. coût en ressource et dimensions des tableaux
    Par bosonfuté dans le forum C
    Réponses: 5
    Dernier message: 06/06/2013, 09h26
  2. [HTML 4.0] Les Dimensions des Tableaux
    Par AimStar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 15/11/2012, 12h17
  3. Optimisation : plus grande dimension des tableaux
    Par Kaluza dans le forum Langage
    Réponses: 3
    Dernier message: 22/01/2012, 20h01
  4. [Tableaux] Dimensions des tableaux
    Par Doksuri dans le forum Langage
    Réponses: 6
    Dernier message: 25/01/2008, 11h05
  5. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44

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