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 :

Exécution d'une requête


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Par défaut Exécution d'une requête
    Bonjour à tous je suis debutant sous ZEND et voici mon probleme que je n'arrive pas à resoudre:


    fichier dans mon model Loto.php


    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
     
    <?php
    Zend_Loader::loadClass("Zend_Db_Table_Abstract");
    Zend_Loader::loadClass("Zend_Db_Table_Row_Abstract");
     
    class Loto extends Zend_Db_Table_Abstract 
    {
        protected $_name = 'loto';
        protected $_rowClass = 'loto_Row';
     
     
     public function newRow($obj = null) {
          if ($obj) {
             if (is_object($obj))
                $obj = get_object_vars($obj);
             $row = $this->createRow($obj);
          } else {
             $row = $this->createRow();
          }
          return $row;
       }
    }
     
     
    Class Loto_Row extends Zend_Db_Table_Row_Abstract {
     
    }
    fichier dans mon controlleur LotoController.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function ajouterAction()
        {
        $this->view->title = "Voici les 10 derniers résultats du loto";
        $table = new Loto();
        $lastOperation=$table->fetchAll("1", 'numero1 DESC', 0, 10);
        $this->view->historique = $lastOperation->fetchAll();
        }
    fichier dans ma vue ajouter.phtml


    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
     
    <html>
    <head>
        <title></title>
    </head>
    <body>
     
     
    <?php foreach ($this->historique as $lastOperation) { ?>
    <b><?php echo $lastOperation; ?> </b>-
     
    <hr/>
    <?php } ?>
    </body>
    </html>
    mon erreur est la suivante :
    Fatal error: Call to undefined method Zend_Db_Table_Rowset::fetchAll() in G:\wamp\www\Trouverunnumero\application\controllers\LotoController.php on line 28

    cette ligne est la suivante : $this->view->historique = $lastOperation->fetchAll();

    J'ai fais le tuto avec les albums etc... Mais à par selectionner tous les tuples d'une table je n'arrive pas a en afficher que 10 par exemple.
    Peut etre quand voyant mon code vous allez vous mettre les mains aux yeux mais j'espere que vous pourrez m'aider.

    Voila merci d'avance

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    tu essaye de faire un requête sql sur un tableau.

    La commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lastOperation=$table->fetchAll("1", 'numero1 DESC', 0, 10);
    Te fournira un tableau avec les données de ta db

    ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $this->view->historique = $lastOperation->fetchAll();
    Ne correspond à rien puisque ici, tu essayes de refaire une opération sql, ce qui n'a aucun sens.

    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lastOperation=$table->fetchAll("1", 'numero1 DESC', 0, 10);
    $this->view->historique = $lastOperation;
    Ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->view->historique = $table->fetchAll("1", 'numero1 DESC', 0, 10);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Par défaut
    Merci de votre réponse.

    La suite de mon code est elle juste?

    Ajouter.phtml est t'il bon ?

    Merci beaucoup

    ps : Désolé je suis debutant

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Essaye si la page s'affiche, cela répondra à ta question

  5. #5
    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 figatelliSTI Voir le message
    Merci de votre réponse.

    La suite de mon code est elle juste?

    Ajouter.phtml est t'il bon ?

    Merci beaucoup

    ps : Désolé je suis debutant
    Moi j'aurais plutôt fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head>
        <title></title>
    </head>
    <body>
       <?php foreach ($this->historique as $lastOperation): ?>
          <b><?php echo $lastOperation; ?> </b>
          <hr/>
       <?php endforeach; ?>
    </body>
    </html>
    mais bon ça reste discutable
    PS: j'ose espérer qu'en production, tu ne génères pas du html comme celui là.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Par défaut
    Merci de votre aide.

    Bon maintenant il me met l'erreur suivante :

    Catchable fatal error: Object of class Zend_Db_Table_Rowset could not be converted to string in D:\wamp\www\Trouverunnumero\application\controllers\LotoController.php on line 27

    Cette ligne correspond à :
    $lastOperation=$table->fetchAll("1", 'n1 DESC', 0, 10);

    une idée?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Par défaut
    j'ai trouvé :

    J'ai fais ca dans le .phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php if ($this->historique instanceof Zend_Db_Table_Rowset){
    	$lastOperation = $this->historique;
    	foreach ($lastOperation as $log){
    		echo '
    			<tr>
    				<td>'.$log->n1.'</td>
    			</tr>
    			';
    	}
    }
     
    ?>

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

Discussions similaires

  1. Exécution d'une requête à partir d'un shell
    Par Spyco dans le forum Oracle
    Réponses: 3
    Dernier message: 15/03/2006, 10h58
  2. [MySQL] Message d'erreur à l'exécution d'une requête
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/02/2006, 14h06
  3. Réponses: 1
    Dernier message: 05/12/2005, 23h24
  4. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  5. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48

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