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

Symfony PHP Discussion :

Requete doctrine ne renvoie rien! [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut Requete doctrine ne renvoie rien!
    Bonjour! Je suis bloqu�e depuis une semaine sur ce code. Au d�but j'ai cru que c'�tait le foreach qui marchait pas... Puis un �clair de g�nie m'est venu et j'ai un count(). Le count me renvoie 0 of course. Donc ma requete ne fonctionne pas.
    C'est le dernier truc que je dois faire pour mon projet! Je stresse!
    Merci � ceux qui peuvent m'aider... Je m'arrache les cheveux!

    En gros je dois comparer deux tables afin de mettre � jour la variable $etatValidation � 0 ou 1. J'en ai besoin pour un traitement que je fais dans la fen�tre qui affiche les donn�es.

    Bien � vous.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    <?php
     
    /**
     * SeriesVehiculeTable
     * 
     * This class has been auto-generated by the Doctrine ORM Framework
     */
    class SeriesVehiculeTable extends Ratp_Doctrine_Table
    {
        /**
         * Returns an instance of this class.
         *
         * @return object SeriesVehiculeTable
         */
        public static function getInstance()
        {
            return Doctrine_Core::getTable('SeriesVehicule');
        }
     
    	public function getAll($offset, $limit, array $filters = array(), array $sort = array(), array $params = array(), $query = null)
        {
    		$refFournisseur = $params['refFournisseur'];
    		$refOskar = $params['refOskar'];
    		$modele = $params['modele'];
    		$typeConstructeur = $params['typeConstructeur'];
    		$ajoutCommentaire = $params['ajoutCommentaire'];
     
    		$etatValidation = 'shit';
     
    		//comparer ici
    		//recuperer les effectivites validees
    		$tableEffectivitesValidees = Doctrine_Core::getTable('EffectivitesValidees');
    		$requete = $tableEffectivitesValidees->createQuery();
    		$requete->select('serie');
    		$requete->where('modele = ?', array($modele));
    		$requete->andWhere('typeConstructeur = ?', array($typeConstructeur));
    		$requete->andWhere('numArticle = ? OR numArticle = ?', array($refFournisseur, $refOskar));
    		$req1res = $requete->execute(array(), Doctrine::HYDRATE_SCALAR); //count() retourne 0
     
    		//recuperer les series a comparer
    		$tableSeriesVehicule = Doctrine_Core::getTable('SeriesVehicule');
    		$requete2 = $tableSeriesVehicule->createQuery();
    		$requete2->select('serie');
    		$requete2->where('modele = ?', array($modele));
    		$requete2->andWhere('typeConstructeur = ?', array($typeConstructeur));
    		$req2res = $requete2->execute(array(), Doctrine::HYDRATE_SCALAR);; //count() retourne 0
     
    //		foreach($req2res as $serieVeh){
    //			foreach($req1res as $effVal){
    //				$serie = $serieVeh;
    //				$serieVal = $effVal;
    //				if($serie == $serieVal){
    //					$etatValidation = 1;
    //					//$query = $this->createQuery();
    //					//$query->addSelect('\'' . $etatValidation . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    //					//$query->where('modele = ?', array($params['modele']));
    //					//return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
    //				}
    //				else {
    //					$etatValidation = 0;
    //					//$query1 = $this->createQuery();
    //					//$query1->addSelect('\'' . $etatValidation . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    //					//$query1->where('modele = ?', array($params['modele']));
    //					//return parent::getAll($offset, $limit, $filters, $sort, array(), $query1);
    //				}
    //			}
    //		}
     
    		//comparer ici
     
    		$query = $this->createQuery();
    		$query->addSelect('\'' . $req2res . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    		//$query->addSelect('\'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
            $query->where('modele = ?', array($params['modele']));
     
    		return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
        }
    }

  2. #2
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $requete->where('modele = ?', array($modele));
    et sq. : �a me parait suspect comme �criture.

    Soit tu as un scalaire et tu utilises where ou andWhere :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $requete->where('modele = ?', $modele);
    Soit tu as un tableau et tu utilises whereIn ou andWhereIn :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $requete->whereIn('modele', $modele);

  3. #3
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    J'ai enlev� le array (�a provenait d'un copier coller). Mais count() renvoie toujours 0... Il ne semble pas acc�der aux donn�es de la table! Je me demande si ce n'est pas une connerie de symfony parce qu'il a pas la visibilit� sur ma table, ou un truc de fichier YAML ou je ne sais quoi encore...
    (je n'ai JAMAIS programm� sur symfony NI Extjs et on m'a confi� �a, et dans cette bo�te personne ne sait rien faire...)

  4. #4
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Citation Envoy� par analuiza Voir le message
    (je n'ai JAMAIS programm� sur symfony NI Extjs et on m'a confi� �a, et dans cette bo�te personne ne sait rien faire...)
    Vu la complexit� de symfony, si tu ne connais pas le framework et qu'en interne ta boite n'a pas de ressources l�-dessus, pr�vois 6 mois de formation

    Pour en revenir � ton probl�me : si la requ�te est ex�cut�e et que le r�sultat est une liste vide, c'est qu'aucune ligne de la table ne correspond � tes conditions. Essaye de logger ta requ�te pour examiner �a de plus pr�s. Ou de retrouver la requ�te dans la barre de debug si tu es en environnement 'dev'.

  5. #5
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Effectivement, cela fait 5 mois que je suis en stage et que mon tuteur m'engueule parce que c'est ma derni�re semaine et que soit disant j'ai perdu trop de temps au d�but du stage pour me familiariser avec le framework! (on r�ve l� on est d'accord...) En plus il me reste 2 jours de stage et il veut que �a soit pret! (gros LOL) J'ai fait 80% du projet quand m�me mais y a beaucoup de choses qui m'�chappent...
    Je ne suis pas en dev (le mec qui sait le faire, n'est pas dans mon service, qui plus est il est en vacances) donc je peux pas retrouver la requete...
    Je vais essayer de mettre � la place de :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $requete->where('modele = ?', $modele);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $requete->where('modele = 'LINE-S3');
    qui je sais qui doit me renvoyer respectivement 16 et 4 rows...

    Pour l'instant, count() renvoie 0...

    EDIT :
    Je viens de v�rifier et �a me renvoie bien 16 lorsque je mets les param�tres en brut, comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //recuperer les series a comparer
    		$tableSeriesVehicule = Doctrine_Core::getTable('SeriesVehicule');
    		$requete2 = $tableSeriesVehicule->createQuery();
    		$requete2->select('serie');
    		$requete2->where('modele = \'LINE-S3\' ');
    		$requete2->andWhere('typeConstructeur = \'78M 001\' ');
    		$req2res = $requete2->count();
    Donc c'est au niveau de la r�cup�ration de mes param�tres que �a foire.
    Pourtant, au d�but je fais �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function getAll($offset, $limit, array $filters = array(), array $sort = array(), array $params = array(), $query = null)
        {
    		$refFournisseur = $params['refFournisseur'];
    		$refOskar = $params['refOskar'];
    		$modele = $params['modele'];
    		$typeConstructeur = $params['typeConstructeur'];
    		$ajoutCommentaire = $params['ajoutCommentaire'];
    et plus loin, il n'y a pas de souci quand je fais �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    $query = $this->createQuery();
    $query->addSelect('\'' . $req2res . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    $query->where('modele = ?', array($params['modele']));
     
    return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
    Ah on y est presque! (Merci Herode quand m�me... t'es un chic type!)

  6. #6
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Citation Envoy� par analuiza Voir le message
    Je ne suis pas en dev (le mec qui sait le faire, n'est pas dans mon service, qui plus est il est en vacances) donc je peux pas retrouver la requete...
    Au pire tu dois pouvoir logger ta requ�te dans un fichier pour la lire, il suffit de mettre le degr� de s�v�rit� assez haut (alert ou error) pour que �a passe avec les r�glages de production standard.

    Mais il n'y a aucune raison que tu ne puisses pas passer en environnement dev. Par d�faut aussi, il devrait y avoir une url du type www.monappli.net/frontend_dev.php qui active l'environnement de dev. Faire du d�veloppement dans un environnement de prod (sans infos de debug et avec le cache), c'est tout de m�me moyennement confortable.

    Autre solution si tu as les outils (EDI) pour �a : tu branches un vrai d�boggueur (XDebug le plus souvent) et tu traces ton code l� o� �a coince.

  7. #7
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Citation Envoy� par Herode Voir le message
    Au pire tu dois pouvoir logger ta requ�te dans un fichier pour la lire, il suffit de mettre le degr� de s�v�rit� assez haut (alert ou error) pour que �a passe avec les r�glages de production standard.

    Mais il n'y a aucune raison que tu ne puisses pas passer en environnement dev. Par d�faut aussi, il devrait y avoir une url du type www.monappli.net/frontend_dev.php qui active l'environnement de dev. Faire du d�veloppement dans un environnement de prod (sans infos de debug et avec le cache), c'est tout de m�me moyennement confortable.

    Autre solution si tu as les outils (EDI) pour �a : tu branches un vrai d�boggueur (XDebug le plus souvent) et tu traces ton code l� o� �a coince.
    Je me suis mise en frontend_dev comme tu m'as dit! Il y a un esp�ce de menu qui est apparu en haut � droite. Mais bon je ne sais pas m'en servir... Surtout je ne sais pas o� regarder pour la requete... (je vois dans l'inspecteur de Chrome quand y a des erreurs mais bon... Pour n'importe quoi il me met Server Error 500 donc �a m'aide pas!

  8. #8
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Ca doit �tre un probl�me de configuration.
    Probablement que ton environnement de dev se connecte sur une autre base de donn�es. Jette un oeil sur config/databases.yml et v�rifie d�j� que prod et dev pointent sur la m�me base (ou en tout cas que dev a des infos de connexion valides).
    NB : Tu dois avoir des traces de la pile d'appel dans ta page si tu es sous dev. Ca permet d'affiner les diagnostics.

    Pour tous ces d�tails, il faut voir dans les tutos Jobeet
    http://www.symfony-project.org/jobee...Doctrine/en/01
    ...et la suite. Le paragraphe sur les environnements est vers le bas.

    Sinon, j'avais r�pondu sans voir ton edit. En effet, si �a renvoie des r�sultats avec les param�tres en dur et rien avec ceux que tu extraits de $params, c'est $params le principal suspect.

  9. #9
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par d�faut
    Bonjour,

    Tout d'abord, je te propose une petite mise en forme (le code ci-dessus est tr�s verbeux et donc difficile � lire) :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
     
    <?php
     
    /**
     * SeriesVehiculeTable
     * 
     * This class has been auto-generated by the Doctrine ORM Framework
     */
    class SeriesVehiculeTable extends Ratp_Doctrine_Table
    {
        /**
         * Returns an instance of this class.
         *
         * @return object SeriesVehiculeTable
         */
        public static function getInstance()
        {
            return Doctrine_Core::getTable('SeriesVehicule');
        }
     
        public function getAll($offset, $limit, array $filters = array(), array $sort = array(), array $params = array(), $query = null)
        {
            $refFournisseur   = $params['refFournisseur'];
            $refOskar         = $params['refOskar'];
            $modele           = $params['modele'];
            $typeConstructeur = $params['typeConstructeur'];
            $ajoutCommentaire = $params['ajoutCommentaire'];
     
            $etatValidation = 'shit';
     
            //comparer ici
            //recuperer les effectivites validees
            $requete = EffectivitesValideesTable::getInstance()->createQuery()
                ->select('serie')
                ->where('modele = ?', $modele)
                ->andWhere('typeConstructeur = ?', $typeConstructeur)
                ->andWhere('numArticle = ? OR numArticle = ?', array($refFournisseur, $refOskar));
            $req1res = $requete->execute(array(), Doctrine::HYDRATE_SCALAR); //count() retourne 0
     
            //recuperer les series a comparer
            $requete2 = $this->createQuery()
                ->select('serie')
                ->where('modele = ?', $modele)
                ->andWhere('typeConstructeur = ?', ($typeConstructeur);
            $req2res = $requete2->execute(array(), Doctrine::HYDRATE_SCALAR); //count() retourne 0
     
    //      foreach($req2res as $serieVeh){
    //          foreach($req1res as $effVal){
    //              $serie = $serieVeh;
    //              $serieVal = $effVal;
    //              if($serie == $serieVal){
    //                  $etatValidation = 1;
    //                  //$query = $this->createQuery();
    //                  //$query->addSelect('\'' . $etatValidation . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    //                  //$query->where('modele = ?', array($params['modele']));
    //                  //return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
    //              }
    //              else {
    //                  $etatValidation = 0;
    //                  //$query1 = $this->createQuery();
    //                  //$query1->addSelect('\'' . $etatValidation . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    //                  //$query1->where('modele = ?', array($params['modele']));
    //                  //return parent::getAll($offset, $limit, $filters, $sort, array(), $query1);
    //              }
    //          }
    //      }
     
            //comparer ici
            $query = $this->createQuery()
                ->addSelect('\'' . $req2res . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
            //$query->addSelect('\'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
            $query->where('modele = ?', $params['modele']);
     
            return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
        }
    }
    H�rode t'as indiqu� comment faire pour passer en environnement de d�v et je ne peux que t'encourager � suivre au maximum ce conseil : il n'y a rien de plus dangereux que de bosser directement sur un environnement de prod !!!

    Tu as trois requ�tes dans ta m�thode, il faudrait pouvoir les tester s�par�ment. Le plus rapide (m�me si c'est le moins propre) serait de :
    - � chaque requ�te, faire un getSQL puis un afficher la requ�te SQL obtenue ;
    - utilise phpmyadmin (ou autre) pour tester ces diff�rentes requ�tes SQL et voir ce que tu obtiens.
    Tu auras d�j� une bonne piste pour comprendre o� le probl�me se situe.

    Sinon, pourrais-tu expliquer tr�s pr�cis�ment ce que tu cherches � faire ici ? Il me semble �trange de voir un code aussi complexe pour faire aussi peu de choses (comme tu le d�cris dans ton premier commentaire).

  10. #10
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Citation Envoy� par Herode Voir le message
    Sinon, j'avais r�pondu sans voir ton edit. En effet, si �a renvoie des r�sultats avec les param�tres en dur et rien avec ceux que tu extraits de $params, c'est $params le principal suspect.
    Bah oui mais pourquoi �a marche � la fin alors??? Argh je n'y comprends rien!

    Sinon niveau config, tout est bon normalement, je travaille sur une copie du projet (donc de tous les fichiers) et sur une copie de la BDD et tout les autres trucs que j'ai fait concernant la BDD et tout �a, �a marche. Donc ce n'est pas un probl�me de pointage. Je cherche du cot� de $params (mais c'est un myst�re ce truc puisque ma requ�te � la fin marche et m'affiche les donn�es!
    J'ai envie de pleurer...

  11. #11
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par d�faut
    Quand tu fais un print_r($params), qu'est ce que tu obtiens ?

  12. #12
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Citation Envoy� par bilbonec Voir le message
    Sinon, pourrais-tu expliquer tr�s pr�cis�ment ce que tu cherches � faire ici ? Il me semble �trange de voir un code aussi complexe pour faire aussi peu de choses (comme tu le d�cris dans ton premier commentaire).
    Bien s�r! Je m'explique! (D�j� vous �tes assez sympas pour m'aider c'est la moindre des choses!

    J'ai deux tables SeriesVehicule[Modele, TypeContructeur, Serie] et EffectivitesValidees[Modele, TypeConstructeur, Serie, NumArticle].

    Pour un modele et un type constructeur donn�, j'ai plusieurs s�ries (table SeriesVehicule). Pour un article, j'ai plusieurs s�ries qui ont �t� valid�es (table EffectivitesValidees).
    Je veux r�cup�rer les s�ries des deux tables. Les s�ries dont je connais le modele, le typeConstructeur et l'article (requete 1, table EffectivitesValidees), les s�ries dont je connais le modele et le typeConstructeur (requete 2, table SeriesVehicule).

    J'obtiens donc 2 tableaux contenant des s�ries. Je compare ces s�ries entre elles. Lorsque je retrouve une s�rie dans les 2 tables, je mets la variable $etatValidation � 1. Sinon cette variable vaut 0. (d'o� le foreach)

    La derni�re requete, est celle qui me renvoie les donn�es de la table SeriesVehicules et qui en plus me met dans ma colonne Etat Validation (lors de l'affichage), le num�ro 1 ou 0.
    Dans cette fenetre (affichage), j'ai un bouton qui traite les donn�es suivant que la valeur de Etat Validation est � 0 ou 1.

    Donc la derni�re requete est OK parce que dans ma fenetre, je vois bien les donn�es.
    La requete 2 avec les donn�es en brut, me renvoie bien le nombre de rows que je devrais avoir (v�rifi� avec TOAD) au nombre de 16 pour l'exemple donn�. C'est la deuxi�me requete avec les parametres qui renvoie un count() = 0. Ce qui est un myst�re puisque $params marche bien puisque la derni�re requete marche...

    J'ai l'impression c'est un petit truc � la c**!

  13. #13
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Citation Envoy� par bilbonec Voir le message
    Quand tu fais un print_r($params), qu'est ce que tu obtiens ?
    Ma fenetre d'affichage n'affiche rien. Et en inspecteur Chrome j'ai �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Uncaught Ext.Error: Unable to parse the JSON returned by the server: You're trying to decode an invalid JSON String: Array
    (
        [modele] => AGORA-S2
        [refFournisseur] => 5010140587
        [refOskar] => CAT0000001
        [ajoutCommentaire] => 
    )
    {"total":"48","rows":[{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"90174","debut_veh":"2113","fin_veh":"2113","nb_veh":"1","debut_mes":"1997-06-10 00:00:00","fin_mes":"1997-06-10 00:00:00","tranches":"2113","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"90211","debut_veh":"2114","fin_veh":"2115","nb_veh":"2","debut_mes":"1997-06-10 00:00:00","fin_mes":"1997-06-10 00:00:00","tranches":"2114 => 2115","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"99580","debut_veh":"0041","fin_veh":"2058","nb_veh":"23","debut_mes":"1996-10-08 00:00:00","fin_mes":"1997-02-05 00:00:00","tranches":"0041 ,2002 => 2011 ,2013 => 2042 ,2044 ,2047 => 2058","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"99616","debut_veh":"2111","fin_veh":"2111","nb_veh":"1","debut_mes":"1997-02-26 00:00:00","fin_mes":"1997-02-26 00:00:00","tranches":"2111 => 2112","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"99640","debut_veh":"2065","fin_veh":"2091","nb_veh":"12","debut_mes":"1996-11-29 00:00:00","fin_mes":"1997-01-30 00:00:00","tranches":"2059 => 2067 ,2078 ,2080 => 2088 ,2090 => 2094 ,2096 => 2099 ,2101 => 2102","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 001","serie":"99684","debut_veh":"2103","fin_veh":"2110","nb_veh":"8","debut_mes":"1996-12-17 00:00:00","fin_mes":"1997-01-06 00:00:00","tranches":"2103 => 2110","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"80873","debut_veh":"2333","fin_veh":"2423","nb_veh":"75","debut_mes":"1998-01-09 00:00:00","fin_mes":"1998-03-17 00:00:00","tranches":"2333 ,2335 => 2423","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81427","debut_veh":"2424","fin_veh":"2424","nb_veh":"1","debut_mes":"1998-03-10 00:00:00","fin_mes":"1998-03-10 00:00:00","tranches":"2424","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81428","debut_veh":"2425","fin_veh":"2485","nb_veh":"56","debut_mes":"1998-02-23 00:00:00","fin_mes":"1998-05-05 00:00:00","tranches":"2425 => 2431 ,2433 => 2458 ,2461 => 2472 ,2474 => 2485","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81487","debut_veh":"7645","fin_veh":"7714","nb_veh":"70","debut_mes":"2001-05-25 00:00:00","fin_mes":"2001-07-04 00:00:00","tranches":"7645 => 7714","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81557","debut_veh":"7715","fin_veh":"7759","nb_veh":"45","debut_mes":"2001-07-05 00:00:00","fin_mes":"2001-08-08 00:00:00","tranches":"7715 => 7759","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81602","debut_veh":"7760","fin_veh":"7794","nb_veh":"35","debut_mes":"2001-07-27 00:00:00","fin_mes":"2001-09-25 00:00:00","tranches":"7760 => 7794","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"81899","debut_veh":"2486","fin_veh":"2486","nb_veh":"1","debut_mes":"1998-05-15 00:00:00","fin_mes":"1998-05-15 00:00:00","tranches":"2486","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82482","debut_veh":"2487","fin_veh":"2571","nb_veh":"57","debut_mes":"1998-04-29 00:00:00","fin_mes":"1998-07-16 00:00:00","tranches":"2487 => 2526 ,2528 => 2536 ,2538 => 2540 ,2542 => 2543 ,2569 => 2571","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82542","debut_veh":"2544","fin_veh":"2563","nb_veh":"19","debut_mes":"1998-06-18 00:00:00","fin_mes":"1998-07-06 00:00:00","tranches":"2544 => 2563","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82692","debut_veh":"2564","fin_veh":"2568","nb_veh":"5","debut_mes":"1998-06-30 00:00:00","fin_mes":"1998-08-14 00:00:00","tranches":"2564 => 2568","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82860","debut_veh":"2572","fin_veh":"2575","nb_veh":"4","debut_mes":"1998-07-10 00:00:00","fin_mes":"1998-07-16 00:00:00","tranches":"2572 => 2575","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82864","debut_veh":"2576","fin_veh":"2580","nb_veh":"4","debut_mes":"1998-07-10 00:00:00","fin_mes":"1998-07-23 00:00:00","tranches":"2576 ,2578 => 2580","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82869","debut_veh":"2581","fin_veh":"2602","nb_veh":"21","debut_mes":"1998-07-23 00:00:00","fin_mes":"1998-09-09 00:00:00","tranches":"2581 => 2596 ,2598 => 2602","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82891","debut_veh":"2660","fin_veh":"2686","nb_veh":"23","debut_mes":"1998-10-08 00:00:00","fin_mes":"1998-11-23 00:00:00","tranches":"2660 => 2675 ,2679 => 2686","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82915","debut_veh":"2604","fin_veh":"2626","nb_veh":"22","debut_mes":"1998-09-08 00:00:00","fin_mes":"1998-10-07 00:00:00","tranches":"2604 => 2607 ,2609 => 2626","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"82931","debut_veh":"2627","fin_veh":"2678","nb_veh":"33","debut_mes":"1998-09-22 00:00:00","fin_mes":"1998-11-10 00:00:00","tranches":"2627 => 2656 ,2658 => 2659 ,2678","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"83015","debut_veh":"2813","fin_veh":"2841","nb_veh":"25","debut_mes":"1999-01-26 00:00:00","fin_mes":"1999-02-25 00:00:00","tranches":"2813 => 2822 ,2827 => 2841","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"83040","debut_veh":"2842","fin_veh":"2855","nb_veh":"14","debut_mes":"1999-02-25 00:00:00","fin_mes":"1999-03-02 00:00:00","tranches":"2842 => 2855","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""},{"modele":"AGORA-S2","typeConstructeur":"77M 002","serie":"83100","debut_veh":"2687","fin_veh":"2771","nb_veh":"82","debut_mes":"1998-10-30 00:00:00","fin_mes":"1999-02-11 00:00:00","tranches":"2687 => 2760 ,2763 => 2771","nb_serie":"48","etatValidation":"16","refFournisseur":"5010140587","refOskar":"CAT0000001","ajoutCommentaire":""}]}

  14. #14
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par d�faut
    Si le print_r te donne :
    Array
    (
    [modele] => AGORA-S2
    [refFournisseur] => 5010140587
    [refOskar] => CAT0000001
    [ajoutCommentaire] =>
    )
    alors il te manque le typeConstructeur dans ton $params.

  15. #15
    Membre habitu�
    Femme Profil pro
    �tudiant
    Inscrit en
    Juin 2012
    Messages
    11
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par d�faut
    Citation Envoy� par bilbonec Voir le message
    Si le print_r te donne :
    Array
    (
    [modele] => AGORA-S2
    [refFournisseur] => 5010140587
    [refOskar] => CAT0000001
    [ajoutCommentaire] =>
    )
    alors il te manque le typeConstructeur dans ton $params.
    Je pourrais te faire des bisous l�! Le truc c'est que typeConstructeur est dans la table SeriesVehicule que je r�cup�re � la fin (requete 3) et que j'ai aucun moyen de l'avoir avant (pas possible de le passer dans $params)... Bref je vais repenser tout �a. Merci beaucoup! J'ai remplac� donc typeConstructeur partout pour tester mon foreach et mon $etatValidation l�... Ca ne marche pas, je soup�onne ma comparaison. Si vous avez des id�es, mais sinon je vais chercher!

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public function getAll($offset, $limit, array $filters = array(), array $sort = array(), array $params = array(), $query = null)
        {
    		$refFournisseur = $params['refFournisseur'];
    		$refOskar = $params['refOskar'];
    		$modele = $params['modele'];
    		//$typeConstructeur = $params['typeConstructeur'];
    		$ajoutCommentaire = $params['ajoutCommentaire'];
     
    		$etatValidation = 'shit';
     
    		//print_r($params); PAS DE TYPE CONSTRUCTEUR DANS PARAMS!!!
     
    		//comparer ici
    		//recuperer les effectivites validees
    		$tableEffectivitesValidees = Doctrine_Core::getTable('EffectivitesValidees');
    		$requete = $tableEffectivitesValidees->createQuery();
    		$requete->select('serie');
    		$requete->where('modele = ?', $modele);
    		$requete->andWhere('typeConstructeur = \'78M 001\' ');
    		$requete->andWhere('numArticle = ? OR numArticle = ?', array($refFournisseur, $refOskar));
    		$req1res = $requete->execute(array(), Doctrine::HYDRATE_SCALAR); //count() retourne 0
     
    		//recuperer les series a comparer
    		$tableSeriesVehicule = Doctrine_Core::getTable('SeriesVehicule');
    		$requete2 = $tableSeriesVehicule->createQuery();
    		$requete2->select('serie');
    		$requete2->where('modele = ?', $modele);
    		$requete2->andWhere('typeConstructeur = \'78M 001\' ');
    		$req2res = $requete2->execute(array(), Doctrine::HYDRATE_SCALAR); //count() retourne 16
     
    		foreach($req2res as $serieVeh){
    			foreach($req1res as $effVal){
    				$serie = $serieVeh;
    				$serieVal = $effVal;
    				if($serie == $serieVal){
    					$etatValidation = 1;
    				}
    				else {
    					$etatValidation = 0;
    				}
    			}
    		}
     
    		//comparer ici FIN
     
    		//envoi des données à afficher
    		$query = $this->createQuery();
    		$query->addSelect('\'' . $etatValidation . '\' as etatValidation, \'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
    		//$query->addSelect('\'' . $refFournisseur . '\' as refFournisseur, \'' . $refOskar . '\' as refOskar, \'' . $ajoutCommentaire . '\' as ajoutCommentaire, *'); 
            $query->where('modele = ?', array($params['modele']));
     
    		return parent::getAll($offset, $limit, $filters, $sort, array(), $query);
        }
    Dois-je mettre le sujet en r�solu du coup parce que le sujet du post est r�solu (le foreach c'est un autre probl�me de ma b�tise surement...)?

  16. #16
    Membre chevronn�
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par d�faut
    De rien.

    Et oui, cr��s plut�t un autre sujet de discussion pour ton autre probl�me : �a permettra � ceux qui veulent t'aider de n'avoir pas � lire tout plein de choses qui n'ont pas de rapport.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Requete table li�e ne renvoie rien
    Par KurtSilent dans le forum Requ�tes et SQL.
    R�ponses: 2
    Dernier message: 19/06/2013, 09h18
  2. R�ponses: 2
    Dernier message: 14/04/2009, 08h35
  3. R�ponses: 3
    Dernier message: 13/06/2007, 14h57
  4. Requete sql qui ne renvoie rien :-(
    Par patchouli dans le forum Langage SQL
    R�ponses: 4
    Dernier message: 06/02/2007, 09h41
  5. [PostgreSql] requête simple qui ne renvoie rien ?
    Par tuxout dans le forum Langage SQL
    R�ponses: 6
    Dernier message: 03/08/2006, 14h06

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