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

Zend Framework PHP Discussion :

ajouter une array à une autre array


Sujet :

Zend Framework PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut ajouter une array à une autre array
    Bonjour,
    je cherche à ajouter des informations en dur, (des infos qui ne viennent pas de la DB) dans un tableau qui se situe déjà dans une boucle foreach et qui boucle sur des info qui eux viennent de la DB :

    j'ai cherché sur le manuel PHP, j'ai trouvé qu'il existe une function : array_push qui ajoute un tableau à un autre tableau.
    Le problème c'est que je n'ai pas su comment constituer mon deuxième tableau, comme vous voyez le premier est déjà fait, il faut juste créer le deuxième (je l'ai fait en dessous mais ça ne donne rien)
    Les données en VERT c'est les données d'où vient le problème et à qui j'affecte mes infos en dur .

    le premier tab

    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
     
            $this->view->datalayer['typepage'] = 'formule';
            if (Zend_Auth::getInstance()->hasIdentity()) {
                $user = Zend_Auth::getInstance()->getIdentity();
                $this->view->datalayer['idclient'] = $user->id_client;
            } 
            $id = $this->_getParam('id', 0);
     
            $ThematiqueCoursFormule = new Default_Model_ThematiqueCoursFormuleModel();
     
            $CoursModel = new Default_Model_CoursModel();
            $all_cours = $CoursModel->getAllCoursDescriptionpublicfutur($this->view->id_groupe_atelier_thema_formule);
     
     
            $this->view->all_cours = array();
     
       if ($v['id_cours'] != $id) {
                    $this->view->all_cours[$k]['libelle'] = $v['libelle'];
                    $this->view->all_cours[$k]['image'] = url('media') . "agenda-d" . $v['id_cours'] . ".jpg";
                    $this->view->all_cours[$k]['texte'] = $v['libelle'] . " -" . $v['duree'];
                    $this->view->all_cours[$k]['lien'] = $this->view->Lien(array('controller' => 'formule', 'action' => 'display', 'id' => $v['id_cours']), false, true);
                    $this->view->all_cours[$k]['description_courte'] = $v['description_courte'];
                    //$this->view->all_cours[$k]['image'] = $v['image_agenda'];
                    $this->view->all_cours[$k]['prix'] = $v['prix'];
                    $this->view->all_cours[$k]['statut'] = $v['statut'];
                    $this->view->all_cours[$k]['duree'] = $v['duree'];
                    $this->view->all_cours[$k]['id_cours'] = $v['id_cours'];
                    $this->view->all_cours[$k]['prix_barre'] = $v['prix_barre'];
                    $this->view->all_cours[$k]['prix_promo'] = $v['prix_promo'];
                    $this->view->all_cours[$k]['coup_coeur'] = $v['coup_coeur'];
                }
            }

    le deuxième tab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $tousLesCours = array(
               $this->view->all_cours['libelle']=>  "EVJF",
                 $this->view->all_cours['image']=>  url('media') . "agenda-d" . $v['id_cours'] . ".jpg",
               $this->view->all_cours['lien']=> "https://www.atelierdeschefs.fr/fr/cours-de-cuisine/evjf.php", 
               $this->view->all_cours['description_courte']=> "qdfsd sdfgsdfg sfdg sdfg sdfgsdfg sfdgsdfgs sfdgdfg sdfgsfdg sdf gsdfgfg",
               $this->view->all_cours['id_cours']=> $v['id_cours']
        );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      array_push($all_cours, $tousLesCours);

    merci d'avance

  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
    Je peux te souffler une autre méthode ?

    Tu fais bien une requête SQL pour récupérer tes données.
    Eh bien tu peux ajouter tes infos en dur à la requête, avec un UNION.
    Voici la syntaxe :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select nom, prenom, age 
    from ma_table
     
    UNION
     
    select "DUPONT" as nom, "Hervé" as prenom, 65 as age
    from ma_table
     
    order by nom,prenom,age

    Une autre remarque : pourquoi ajouter ces infos en dur, pourquoi ce cours ne rentre-t-il pas dans la base ? Vis-à-vis de ton utilisateur, ça donne à penser que tu triches un peu non ?


    edit : bon en PHP maintenant, ceci marchera probablement (je ne pratique pas ton framework ceci dit)... Par contre il faut que tu nommes TOUS les champs du tableau associatif, quitte à les mettre à vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //les crochets vides ajoutent un enregistrement au dernier du tableau.
    $this->view->all_cours[]['champ_1']='toto';
    $this->view->all_cours[]['champ_2']='';
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    salut Dendrite, merci pour ton retour.

    ce n'est pas vraiment une triche c'est juste un petit test qui durera quelques jours, ça ne sera pas la peine de l'ajouter à la DB.

    Je ne pourrais pas utiliser des requettes SQL car là je suis dans un controller (du MVC),

    bref je sais que ça doit être facile de faire ça mais je n'arrive pas à trouver comment,

    mon tuteur m'a dit que je dois ajouter un tableau, le remplir en dur et de le push, je n'avais pas compris ce qu'il voulait dire par push au début mais apres quelques recherches je suis tombée sur la func array_push, mais ça ne me donne rien.

    En fait, j'ai affiché avec un var_dump le tableau : var_dump($tousLesCours); j'ai toutes les donnée du 1er tab + le deuxème mais en affichage (Front) ça donne rien

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Je peux te souffler une autre méthode ?

    Tu fais bien une requête SQL pour récupérer tes données.
    Eh bien tu peux ajouter tes infos en dur à la requête, avec un UNION.
    Voici la syntaxe :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select nom, prenom, age 
    from ma_table
     
    UNION
     
    select "DUPONT" as nom, "Hervé" as prenom, 65 as age
    from ma_table
     
    order by nom,prenom,age

    Une autre remarque : pourquoi ajouter ces infos en dur, pourquoi ce cours ne rentre-t-il pas dans la base ? Vis-à-vis de ton utilisateur, ça donne à penser que tu triches un peu non ?


    edit : bon en PHP maintenant, ceci marchera probablement (je ne pratique pas ton framework ceci dit)... Par contre il faut que tu nommes TOUS les champs du tableau associatif, quitte à les mettre à vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //les crochets vides ajoutent un enregistrement au dernier du tableau.
    $this->view->all_cours[]['champ_1']='toto';
    $this->view->all_cours[]['champ_2']='';

    ça marche pas
    Fatal error: Cannot use [] for reading in C:\wamp\www\atelierdeschefs\adc_web\application\modules\default\controllers\fr\FormuleController.php on line 199
    j'ai même pris les donnéeS telles quelles sur le var_dump d'un autre champs du tab comme ceci mais ça donne rien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           'libelle'=>  "EVJF",
            'image_principale' =>  '120321_bpp1_098.jpg',
            'mail_mea_image' => "https://www.atelierdeschefs.fr/fr/cours-de-cuisine/evjf.php",
            'mail_mea_lien' => "https://www.atelierdeschefs.fr/fr/cours-de-cuisine/evjf.php",
            'description_courte'=> "qdfsd sdfgsdfg sfdg sdfg sdfgsdfg sfdgsdfgs sfdgdfg sdfgsfdg sdf gsdfgfg",
            'id_cours'=> '1234'

  5. #5
    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
    Pardon alors, je ne peux pas t'aider. C'est pour quelqu'un qui connaît le framework ZF.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    mercii quand même

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    c'est bon je l'ai reglé :
    c'etait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    array_push($this->view->all_cours, $tousLesCours);
     
    au lieu de  : 
     
    array_push($all_cours, $tousLesCours);

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

Discussions similaires

  1. Array: Ajouter une valeur à un endroit précis
    Par Asdorve dans le forum Langage
    Réponses: 6
    Dernier message: 22/06/2017, 15h21
  2. Réponses: 1
    Dernier message: 11/03/2015, 19h33
  3. Réponses: 2
    Dernier message: 28/03/2006, 11h45
  4. [Plugin] Ajouter une option au menu contextuel ?
    Par relivio dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 22/03/2004, 16h18
  5. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32

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