It does not work... I have a SQL Error. Here it is : *Notice*: Undefined offset: 0 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1388* *Notice*: Undefined offset: 0 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1390* *Notice*: Undefined offset: 0 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1393* *Notice*: Undefined offset: 0 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1397* *Notice*: Undefined offset: 0 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1400* *Notice*: Undefined offset: 1 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1390* *Notice*: Undefined offset: 1 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1393* *Notice*: Undefined offset: 1 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1397* *Notice*: Undefined offset: 1 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1400*
*Notice*: Array to string conversion in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *1149* *Query:* SELECT Array, duedate ASC, `Task`. FROM `tasks` AS `Task` LEFT JOIN `users` AS `User` ON (`Task`.`user_id` = `User`.`id`) LEFT JOIN `users` AS `Assigned` ON (`Task`.`assigned_id` = `Assigned`.`id`) LEFT JOIN `marks` AS `Mark` ON (`Task`.`mark_user_id` = `Mark`.`mark_id`) LEFT JOIN `progresses` AS `Progress` ON (`Task`.`progress_id` = `Progress`.`progress_id`) LEFT JOIN `priorities` AS `Priority` ON (`Task`.`priority_id` = `Priority`.`priority_id`) WHERE all LIMIT 1 *Warning*: *SQL Error:* 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC, `Task`. FROM `tasks` AS `Task` LEFT JOIN `users` AS `User` ON (`Task`.`user' at line 1 in *Z:\dev\frameworks\cake\cake\libs\model\datasources\dbo_source.php* on line *440* I try by changing your code regarding to the error but I still get a SQL Error... grigri wrote: > Try this: > > $tasks = $this->Task->find('all', array( > 'conditions' => array( > 'or' => array( > array('user_id' => $user_id), > array('alternate_id' => $user_id, 'user_id' => '<> ' . $user_id) > ), > 'duedate' => date('Y-m-d') > ), > 'order' => 'duedate ASC' > )); > > On May 16, 2:53 pm, Pierre MARCOURT <[EMAIL PROTECTED]> wrote: > >> Here are the requests I am doing : >> >> $tab1 = $this->Task->findAll('user_id = ' . $user_id . ' AND duedate = >> "' . date('Y-m-d') . '"', null, 'duedate ASC'); >> $tab2 = $this->Task->findAll('alternate_id = ' . $user_id . ' AND >> user_id != '.$user_id.' AND duedate = "' . date('Y-m-d') . '"', null, >> 'duedate ASC'); >> $tasks = array_merge($tab1, $tab2); >> $this->set('tasks', $tasks); >> >> I don't like that way, because I am using twice /findAll()/ on the same >> table and for only one result at the end. >> That's why I was wondering if there is a way to do it better. >> >> I think that your example is better than mine because you are doing a >> simple query ($tmp) to get the ids (this query should not take too long) >> and then the /findAll()/ query. >> I don't like my way because, by using twice /findAll()/, my requests >> could take too long for a lot of rows... And I don't see how to rewrite >> it without using UNION because there is the condition user_id != >> '.$user_id.' in the 2nd one which is the contrary of 'user_id = ' . >> $user_id . ' in the first one... >> >> Anyway, thanks for you help ! >> >> >> >> grigri wrote: >> >>> In a word, no. >>> >>> In a UNION, MySQL does not return any table information with each >>> column [since it can't, because a union can be from different tables], >>> and cakephp's dbo_mysql class relies on this information to map the >>> result rows to the originating model (think left joins). >>> >>> What exactly is the query you're trying to produce? There must be a >>> way to rewrite it to not use a union (which are not usually that >>> efficient anyway). >>> >>> If the union query you're creating is from the same table, you could >>> always perform the union as a query(), but only return the row ids, >>> then use Set::extract() on the result to get the ids into a flattened >>> list, then call findAll with the id list: >>> >>> $tmp = $this->query('SELECT Product.id FROM [complicated sql] UNION >>> SELECT Product.id FROM [complicated sql]'); >>> $ids = Set::extract($tmp, '{n}.0.id'); >>> $products = $this->findAll(array('Product.id' => $ids)); >>> >>> hth >>> grigri >>> >>> On May 16, 2:17 pm, Pierre MARCOURT <[EMAIL PROTECTED]> wrote: >>> >>>> Hi, >>>> >>>> I would like to make a MySQL request with an UNION but I can't find out >>>> a way to do it by using CakePHP methods. >>>> I looked at Google but it seems that the only way to do it is to make a >>>> custom request by using /query()/. >>>> But I don't want to do it that way because I need the recursive option >>>> that we can have with /find()/ or /findAll()/. >>>> So, to make it works, I am doing 2 different requests (by using >>>> /findAll()/) and I merge the 2 results in a array(). >>>> To be honest, I don't like my idea at all. >>>> >>>> I would like to know if there is another way to do it better ? >>>> >>>> Thanks. >>>> >>>> -- >>>> *Pierre MARCOURT* >>>> >>>> *IT Department* >>>> *CableOrganizer.com* >>>> 5610 NW 12th Ave, suite 214 >>>> Fort Lauderdale, FL 33304 >>>> >>>> Phone: 954-861-6310 >>>> Fax: 954-861-2001 >>>> >> -- >> *Pierre MARCOURT* >> >> *IT Department* >> *CableOrganizer.com* >> 5610 NW 12th Ave, suite 214 >> Fort Lauderdale, FL 33304 >> >> Phone: 954-861-6310 >> Fax: 954-861-2001 >> > > > -- *Pierre MARCOURT* *IT Department* *CableOrganizer.com* 5610 NW 12th Ave, suite 214 Fort Lauderdale, FL 33304 Phone: 954-861-6310 Fax: 954-861-2001 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---