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 :

Zend et requête where


Sujet :

Zend_Db PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Zend et requête where
    Bonjour à tous,

    Voilà j'ai un problème, c'est la fin de journée cela y joue peut être un peu. Voici mon pb :
    J'affiche les données de ma base de données (BDD) avec le framework Zend, jusqu'à la tout va bien, voici d’ailleurs mon code :

    -Le controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    class PageController extends Zend_Controller_Action
    {	
    public function validationAction()
        {
        	$this->view->title="Validation";
        	$this->view->headTitle($this->view->title, 'PREPEND');
     
        	$albums = new Application_Model_DbTable_Prestationsvalider();
        	$this->view->albums = $albums->fetchAll();
     
        }
    }
    Voici ensuite mon model :
    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
    33
    34
    35
     
    <?php
     
    class Application_Model_DbTable_Prestationsvalider extends Zend_Db_Table_Abstract
    {
        protected $_name = 'prestations';
        protected $_primary = array('id');
        protected $_sequence = 'prestations_pres_id_seq';
     
        protected $_referenceMap    = array(
            'Prestataire' => array(
                'columns'           => array('pre_id'),
                'refTableClass'     => 'Application_Model_DbTable_Prestataires',
                'refColumns'        => array('id'),
        				'onDelete'          => self::CASCADE,
    					'onUpdate'          => self::RESTRICT),
            'Activite' => array(
                'columns'           => array('act_id'),
                'refTableClass'     => 'Application_Model_DbTable_Activites',
                'refColumns'        => array('id'),
        				'onDelete'          => self::CASCADE,
    					'onUpdate'          => self::RESTRICT),
            'Ville' => array(
                'columns'           => array('ville_id'),
                'refTableClass'     => 'Application_Model_DbTable_Villes',
                'refColumns'        => array('id'),
        				'onDelete'          => self::CASCADE,
    					'onUpdate'          => self::RESTRICT),
            'Offrestar' => array(
                'columns'           => array('offre_star_id'),
                'refTableClass'     => 'Application_Model_DbTable_OffresStars',
                'refColumns'        => array('id'),
        				'onDelete'          => self::CASCADE,
    					'onUpdate'          => self::RESTRICT));
    }
    Ma table prestations et liée à d'autres tables (activite, ville...).

    Puis ma view :
    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
     
    <?php
    $this->layout()->setLayout('administration/admin'); 
    echo $this->title;
    ?>
     
    <table>
        <tr>
            <th>id</th>
            <th>ville_id</th>
            <th>titre</th>
            <th>validaion</th>
            <th>&nbsp;</th>
        </tr>
    <?php foreach($this->albums as $album) : ?>
        <tr>
            <td><?php echo $this->escape($album->id);?></td>
            <td><?php echo $this->escape($album->ville_id);?></td>
            <td><?php echo $this->escape($album->pres_titre);?></td>
            <td><?php echo $this->escape($album->pres_valide);?></td>
        </tr>
    <?php endforeach; ?>
    </table>

    Mon problème est le suivant :
    Avec le code ci-dessus j'affiche toutes les données de la table "prestations" et moi j'aimerais qu'il m'affiche toutes les données de la table "prestations" WHERE le champs pres_valide=FALSE...
    Seulement n'étant pas un adepte de Zend je ne vois pas comment modifier mon code, alors votre aide est la bien venu =)

    Merci de votre aide ^^

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Bonsoir,
    Il suffit de lire la documentation pour avoir la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fetchAll('ton champ = ta valeur')
    http://framework.zend.com/manual/1.1...le.rowset.html

  3. #3
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Dans ton controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->view->albums = $albums->fetchAll('pres_valide = "FALSE"');
    EDIT : Pour compléter ce qu'a dit 5h4rk : http://framework.zend.com/manual/1.1...able.fetch-all


    Les boutons et existent, servez-vous en

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut merciii
    merci de votre aide c'est toppp =)

    Par contre je peux aussi écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $albums = new Application_Model_DbTable_Albums();
    $this->view->albums = $albums->fetchAll($albums->select()->where('valider = ?', 'FALSE')
        			->order('id ASC')
        			->limit(10, 0));
    A la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $albums = new Application_Model_DbTable_Albums();
    $this->view->albums = $albums->fetchAll('valider = FALSE', 'id asc');
    Mais il y a t'il une différence ? Si je souhaite faire des jointures c'est plus pratique avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $this->view->albums = $albums->fetchAll($albums->select()->where('valider = ?', 'FALSE')
        			->order('id ASC')
        			->limit(10, 0));
    En tout cas merci de votre aide car je débute avec Zend et c'est pas toujours évident au début.

  5. #5
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    La deuxième écriture permet de sécuriser et quoter automatiquement la valeur et les champs mais dans ton cas pour la sécurité tu n'en a pas besoin car c'est toi qui passe la valeur

Discussions similaires

  1. [MySQL] problème requête WHERE
    Par Angelik dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/02/2008, 10h41
  2. [MySQL] Requête WHERE
    Par joker vb dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/11/2007, 08h54
  3. requête where entre deux chaines de caractères
    Par soltani1 dans le forum Développement
    Réponses: 2
    Dernier message: 04/10/2007, 09h34
  4. [MySQL] requête WHERE, OR ?
    Par Angelik dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 11/05/2007, 18h58
  5. Bonne requête WHERE
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2006, 17h47

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