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_Db PHP Discussion :

Requête SQL et controleur


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut Requête SQL et controleur
    Bonjour
    Je développe une application comporant un contrôleur principal IndexController.php et un contrôleur ProduitsController.php.
    Dans index.php, j'ai déclaré une connexion à ma BD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // setup database
    $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($db);
    Un truc classique.

    Dans ProduitsController il y 'a une action qui s'appelle nouveauAction à laquelle j'associe la vue nouveau.phtml.

    Je veux faire une requête qui fait appel à plusieurs tables de ma base pour utiliser ces résultats dans le formulaire inclu dans B]nouveau.phtml[/B].

    Comment je dois déclarer cette requête? Où? Est-ce que je dois créer un nouveau model?
    comment je peux utiliser ces résultats dans la vue nouveau.phtml?.
    Merci

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par ZIED Voir le message
    Bonjour
    Je développe une application comporant un contrôleur principal IndexController.php et un contrôleur ProduitsController.php.
    Dans index.php, j'ai déclaré une connexion à ma BD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // setup database
    $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($db);
    Un truc classique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $db = Zend_Db::factory($config->db);
    Zend_Db_Table::setDefaultAdapter($db);
    suffit.

    Citation Envoyé par ZIED Voir le message
    Dans ProduitsController il y 'a une action qui s'appelle nouveauAction à laquelle j'associe la vue nouveau.phtml.

    Je veux faire une requête qui fait appel à plusieurs tables de ma base pour utiliser ces résultats dans le formulaire inclu dans nouveau.phtml.

    Comment je dois déclarer cette requête?
    http://framework.zend.com/manual/fr/zend.db.select.html

    Citation Envoyé par ZIED Voir le message
    Où?
    Dans l'action nouveauAction().

    Citation Envoyé par ZIED Voir le message
    Est-ce que je dois créer un nouveau model?
    Tu dois avoir normalement une classe par table.

    Citation Envoyé par ZIED Voir le message
    comment je peux utiliser ces résultats dans la vue nouveau.phtml?.
    Merci
    en "garnissant" ta vue à partir de l'action
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->view->nom_quelconque = {résultat d'une requête};

  3. #3
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut
    Dans les fichiers ci-joint vous trouverez la structure de mon application ainsi que mon fichier index.php (qui est basé sur le standard recommandé par la doc ZEND)
    Je n'ai pas compris une chose.
    Normalement dans index.php j'ai déclaré ma base de donnée par $db.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // setup database
    $db = Zend_Db::factory ( $config->db->adapter, $config->db->config->toArray () );
    Zend_Db_Table::setDefaultAdapter ( $db );
    Cette variable devrait être visible depuis ProduitsContoller.php, non?

    Dans produitsContoller.php, j'ai mis le code suivant dans nouveauAction() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    				$this->view->message = $sql;
    				$statement = $db->query($sql);

    Quand je consulte la page http://localhost/manufacturing/html/produits/nouveau

    J'ai le message d'erreur suivant :
    Fatal error: Call to a member function query() on a non-object in C:\Program Files\wamp\www\manufacturing\application\controllers\produitsController.php on line 88
    Est-ce que je dois redéclarer ma connexion à la base de données dans produitsController.php ?
    Si oui? A quel endroit et comment?
    Merci
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    formate ton fichier .ini comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    db.adapter = PDO_MYSQL
    db.params.host = localhost
    db.params.username = root
    db.params.password =
    db.params.dbname = forum
    ce qui te permettra de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $db = Zend_Db::factory($config->db);
    Zend_Db_Table::setDefaultAdapter($db);
    remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    include "Zend/Loader.php";
     
    Zend_Loader::loadClass ( 'Zend_Controller_Front' );
    Zend_Loader::loadClass ( 'Zend_Registry' );
    Zend_Loader::loadClass ( 'Zend_View' );
    Zend_Loader::loadClass ( 'Zend_Config_Ini' );
    Zend_Loader::loadClass ( 'Zend_Db' );
    Zend_Loader::loadClass ( 'Zend_Db_Table' );
    Zend_Loader::loadClass ( 'Zend_Db_Select' );
    Zend_Loader::loadClass ( 'Zend_Debug' );
    par cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include "Zend/Loader.php";
    Zend_Loader::registerAutoload();
    et dans ProduitsController.php fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = Zend_Db_Table::getDefaultAdapter();
    Cordialement.

  5. #5
    Membre éclairé
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Par défaut
    J'utilise une base postgresql.
    Je dois juste modifier les données dans config.ini, non?
    Merci

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Oui quand je dis "formatter" je veux dire que tu mets les mêmes clés (celle que j'ai mis dans le .ini) mais avec tes valeurs.

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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