Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-08-2008 17:48:17

zend92500
Membre
Date d'inscription: 08-08-2008
Messages: 15

[resolu]requete sql dans model MVC

j'utilise model MVC et j'ai erreur dans fichier index.phtml

voiçi le model :

Code:

class index extends Zend_Db_Table
{
    protected $_name = 'matable';
    protected $_primary = 'Id';

       public function liste()
    {
        $select =  $this->select()
        ->from(array('p' => 'matable'),  
        array('id' => 'id','nom')
        ->where('condition = ?', 'AM')
        ->group('week(date,1)');
         $r= $this->fetchAll ( $select );
          return $r;
    }
}

le controleur est le suivant:

Code:

class IndexController extends Zend_Controller_Action 
{
    function IndexAction()
    {
       
        $this->view->title = "titre";
        $calcul= new index();    
        $var= $calcul>liste();
        $this->view->var;
    }
}

et le fichier index.phtml

Code:

<?php foreach($this->var as $var) : ?>
    <?php echo $this->escape($var->nom)  ;?>
<?php
 endforeach;
?>

mais j'ai erreur suivante:

Code:

Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP 2.0b1\www\zend\application\views\scripts\index\index.phtml on line 12

j'ai mis requete sql dans controlleur et ça marché mais vu que j'ai besoin d'afficher dans meme page plusieurs requetes ,donc les fonctions je dois les mettre dans model sinon zend affiche dans index.phtm que la fonction indexAction .
une idée?
merçi d'avance de prendre patience de lire ce sujet

Dernière modification par zend92500 (12-08-2008 17:16:07)

Hors ligne

 

#2 08-08-2008 18:15:39

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [resolu]requete sql dans model MVC

Peut-être dans l'action index :

Code:

//  $var= $calcul>liste();
//  $this->view->var;

$this->view->var= $calcul>liste();

Hors ligne

 

#3 08-08-2008 18:29:08

zend92500
Membre
Date d'inscription: 08-08-2008
Messages: 15

Re: [resolu]requete sql dans model MVC

merçi pour votre réponse
j'ai eu ereur suivante

Code:

Fatal error: Call to undefined function liste() inC:\Program Files\EasyPHP 2.0b1\www\zend\application\views\scripts\index\index.phtml on line 15

pour vous expliquer mieux
par exemple je veux afficher nombre total des participant par type sois invité , inscris, administrateur
donc j'aurais amer de creer fonction sql ou je met come parametre type  => function($type)
et dans la page index.phtml j'appele juste cette fonction 3 fois  en changant seulement type chaque fois
j'espere que vous avez compris problematique
cordialement

Hors ligne

 

#4 08-08-2008 18:38:22

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [resolu]requete sql dans model MVC

Oups j'avais pas vu mais :

Code:

//$this->view->var= $calcul>liste();
$this->view->var= $calcul->liste();

Il faut changer d'éditeur et utiliser quelque chose comme Eclipse, Netbeans, Aptana, Zend Studio ou Eclipse PDT on voit tout de suite ce genre de petites erreurs.

Hors ligne

 

#5 08-08-2008 19:00:46

zend92500
Membre
Date d'inscription: 08-08-2008
Messages: 15

Re: [resolu]requete sql dans model MVC

merçi pour ta réponse
j'ai modifié mes trois fichier come suit
pour model

Code:

class index extends Zend_Db_Table
{
    protected $_name = 'matable';
    protected $_primary = 'Id';

       public function liste($condition)
    {
        $select =  $this->select()
        ->from(array('p' => 'matable'),  
        array('id' => 'id','nom')
        ->where('condition = ?', '$condition')
        ->group('week(date,1)');
         $r= $this->fetchAll ( $select );
          return $r;
    }
}

pour controleur j'appele fonction liste comme suit:

Code:

class IndexController extends Zend_Controller_Action 
{
    function IndexActionAction()
    {
  
        $this->view->title = "titre";
        $calcul= new index();
        $this->view->calcul= 
       $calcul->liste('la condition que je veux');     
    }
}

dans le fichier phtml j'ecris ce code

Code:

$ggg=$this->calcul
?>
<pre>
<?php
print_r($ggg);
?>

il m'affiche resultat que je cherche ous forme des aray (affichage de print) mais apres résultat il m'affiche tous les paramtres de connexion ainsi les noms de la table.....
sinon vous savez pas coment avec cette fonction j'utilise echo car quand j'ai utilisé echo il m'affiche erreur

Code:

Object of class Zend_Db_Table_Rowset could not be converted to string in C:\Program Files\EasyPHP

Hors ligne

 

#6 09-08-2008 17:30:30

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [resolu]requete sql dans model MVC

liste() avec fetchAll retourne des objets Zend_Db_Table_Rowset (ou ya bcp d'infos en + des données), un foreach dans ta vue gere bien ces objets. On peut transformer sinon ca en tableau :

Code:

$r= $this->fetchAll ( $select )->toArray();

ben le debugging, en moins bien qu'un debugger smile il ya :

Code:

Zend_Debug::dump( $ggg, 'ggg vaut : ');

qui affiche ca super propre.

Hors ligne

 

#7 10-08-2008 02:20:25

zend92500
Membre
Date d'inscription: 08-08-2008
Messages: 15

Re: [resolu]requete sql dans model MVC

salut et merçi pour ton aide et désolé d'avoir répondu un peu tard
j'ai essayé for each et ça marché
mais le probleme si par exemple je veux faire resultat d'une requete de somme que dois me retourner un seul resultat
par exemple

Code:

nombre total de conexion est 999

je peux pas utiliser foreach
sinon je vais essayer array peut etre ça va marcher

Hors ligne

 

#8 12-08-2008 17:15:46

zend92500
Membre
Date d'inscription: 08-08-2008
Messages: 15

Re: [resolu]requete sql dans model MVC

je vais utiliser array_sum de php ça me donne total de foreach
et ça va m'eviter de creer autre requete

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages