Dur dans dire plus sans d avantage de details. Pour que quelqu un
tente de reproduire ton probleme, il faudrait :
1. le code PHP du find
2. la requete SQL resultante
3. le resultat obtenu
4. le resultat souhaité
5. Type de base (mysql, mysqli?)
Vue de loin si la requete est bonne mais le resultat mauvais, ca
parait mal parti... D'un autre cote, c'est bizarre que tout fonctionne
parfaitement sans order et que tout explose avec si ce n 'est à cause
d'un petit bug.
euphrate_ylb
On Feb 21, 9:38 am, Balou311 <[EMAIL PROTECTED]> wrote:
> Tout d'abord merci de ton aide.
> Ensuite le DESC ou ASC n'est pas obligatoire (par défaut ASC)
> c'est en effet précisé dans l'API mais rien ne change.
> la valeur de FICHIER_R_DATE est le nom du champs de ma vue 'vfichiers'
> quant aux requètes SQL je les avais déjà afficher et ça ne résoud pas
> mon problème puisque la requete généré est bien celle voulue, et que
> c'est le retour qui déconne...
>
> Bon je ne suis plus vraiment un newbie en cake et j'ai relu X fois mon
> code, je l'ai fais relire et pour le moment rien ne change!
> Je commence à croire que le problème vient de cake et non de moi...
>
> Si quelqu'un à donc déjà eu le problème ou saurait comment le
> résoudre????
> je suis preneur...
>
> D'avance merci
>
> On 20 fév, 19:17, frederic bollon <[EMAIL PROTECTED]> wrote:
>
> > le paramètre $order de findAll doit être du genre "field DESC"
> > comme expliqué dans l'API :
> > string $order SQL ORDER BY conditions (e.g. "price DESC" or "name
> > ASC")
>
> > quelle est la valeur de ton FICHIER_R_DATE ?
>
> > tu peux aussi passer ton mode debug à 2 dans app/config/core.php
> > Configure::write('debug', 2);
> > de cette manière il t'affichera les requêtes SQL ça pourra t'aider à
> > comprendre le problème
>
> > On 20 fév, 18:32, Balou311 <[EMAIL PROTECTED]> wrote:
>
> > > Voila les conditions ainsi que le findAll mais très honnètement je ne
> > > pense pas que le problème vienne de la puisque sans la clause order by
> > > aucun souci...
> > > pour palier le problème de manière provisoir, je fais le tire en php
> > > mais je ne trouve pas ça "propre".
>
> > > $conditionFichier[FICHIER_LANGUE] =
> > > $this->Session->read('lang');
>
> > > if (empty($datas)) {
> > > $datas = $this->Session->read('filters');
> > > $this->Session->delete('filters');
> > > if (empty($datas)) {
> > > $this->err[] = 'no_filters';
> > > return;
> > > }
> > > }
>
> > > $idClient = $this->Session->read('id_client');
> > > $conditionFichier[FICHIER_ID_CLIENT] = $idClient;
> > > if (empty($idClient)) {
> > > $this->redirect('/presentations');
> > > exit;
> > > }
>
> > > if ($datas['Suivi']['application'] != 'All') {
> > > $conditionFichier[FICHIER_ID_APPLICATION] =
> > > $datas['Suivi']
> > > ['application'];
> > > } else {
> > > $condition['Client'][CLIENT_ID] = $idClient;
> > > $applis =
> > > $this->Client->find($condition['Client'], null, null, 1);
> > > $myApplis = array();
> > > if (!empty($applis)) {
> > > foreach ($applis['AssocAppli'] as $tmp) {
> > > $tmpApplis[] =
> > > $tmp[ASSOC_APPLI_ID_APPLI_CLIENT];
> > > }
> > > $myApplis = array_unique($tmpApplis);
> > > }
> > > if (empty($myApplis)) {
> > > $this->err[] = 'no_appli';
> > > return;
> > > } else {
> > > $conditionFichier[FICHIER_ID_APPLICATION]
> > > = $myApplis;
> > > }
> > > }
> > > /*
> > > * Récupération de la date de timbre
> > > */
> > > $date_min = $datas['Suivi']['dateDebut'];
> > > $date_max = $datas['Suivi']['dateFin'];
> > > $conditionMin = null;
> > > $conditionMax = null;
> > > if (!empty($date_min) && !empty($date_max)) {
> > > if ($this->_checkShortDate($date_min)) {
> > > $conditionMin =
> > > $this->_dateFr2Us($date_min);
> > > } else {
> > > $this->err[] = 'date_min';
> > > return;
> > > }
> > > if ($this->_checkShortDate($date_max)) {
> > > $conditionMax =
> > > $this->_dateFr2Us($date_max);
> > > } else {
> > > $this->err[] = 'date_max';
> > > return;
> > > }
> > > if ($conditionMin && $conditionMax) {
> > > $conditionFichier[FICHIER_R_DATE] =
> > > "BETWEEN $conditionMin AND
> > > $conditionMax";
> > > }
> > > } else {
> > > $this->err[] = 'no_date';
> > > }
> > > $order = FICHIER_R_DATE;
> > > $datas = $this->Fichier->findall($conditionFichier,
> > > null, $order);
>
> > > D'avance merci,
>
> > > On 20 fév, 18:03, frederic bollon <[EMAIL PROTECTED]> wrote:
>
> > > > pour la vue SQL je ne sais pas trop
> > > > mais montre nous ton findAll au cas ou
>
> > > > On Feb 20, 3:20 pm, Balou311 <[EMAIL PROTECTED]> wrote:
>
> > > > > Bonjour,
>
> > > > > Alors voila j'ai un petit souci qui me prend beaucoup la tête.
> > > > > J'essaye de m'expliquer.
>
> > > > > Je travaille sur une base de données avec de multiple tables.
> > > > > J'ai mis en place des vue au niveau SQL pour me faciliter la vue.
> > > > > Et mon model 'Fichier' travaille sur une vue 'vifichier'
> > > > > récapitulative de 8 autres. CE model possède aussi deux "jointures" de
> > > > > type hasMany.
>
> > > > > Alors voila quand je fais un find ou findAll sur mon model Fichier il
> > > > > n'y a aucun problème dans le sens ou cake me retourne un tableau comme
> > > > > ceci:
> > > > > array('Fichier' =>
> > > > > array( 'champs1' => 'valeur1',
> > > > > 'champs 2' => 'valeur2', ...
> > > > > Par contre quand j'y rajoute un tri (ORDER BY sql) cake me retourne un
> > > > > tableau sans prendre en compte mon model autrement dis il éclate le
> > > > > tableau en sous tableau avec le nom des tables et des vues sur lequel
> > > > > 'vfichier' s'appuie...
>
> > > > > Et du coup il ne s'y retrouve pas et n'arrive pas à me faire les
> > > > > jointures de mon hasMany.
>
> > > > > Quelqu'un aurait-il une idée d'ou ça vient et comment faire pour ne
> > > > > pas qu'il écalte mon tableau?
>
> > > > > D'avance merci,
--~--~---------~--~----~------------~-------~--~----~
Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---