I've been searching a long while to find a way to handle the query I need. I 
still need to try the searchable pluggin but I already managed to find a way 
that somehow works for what I need.

But it doesn't give exactly the rights results and I'm not shure is the 
right way to do it...

any help appreciatted!

here the query:

        *$options['joins']* = array(
                                    array(    'table' => 
'registers_categories',
                                            'alias' => 'RegistersCategory',
                                            'type' => 'inner',
                                            'conditions' => 
array('Register.id = RegistersCategory.register_id')
                                        ),
                                    array(    'table' => 'categories',
                                            'alias' => 'Category',
                                            'type' => 'inner',
                                            'conditions' => 
array('RegistersCategory.category_id = Category.id')
                                        ),
                                    array(    'table' => 
'registers_subcategories',
                                            'alias' => 
'RegistersSubcategory',
                                            'type' => 'inner',
                                            'conditions' => 
array('Register.id = RegistersSubcategory.register_id')
                                        ),
                                    array(    'table' => 'subcategories',
                                            'alias' => 'Subcategory',
                                            'type' => 'inner',
                                            'conditions' => 
array('RegistersSubcategory.Subcategory_id = Subcategory.id')
                                        ),
                                    array(    'table' => 
'registers_subsubcategories',
                                            'alias' => 
'RegistersSubsubcategory',
                                            'type' => 'inner',
                                            'conditions' => 
array('Register.id = RegistersSubsubcategory.register_id')
                                        ),
                                    array(    'table' => 'subsubcategories',
                                            'alias' => 'Subsubcategory',
                                            'type' => 'inner',
                                            'conditions' => 
array('RegistersSubsubcategory.Subsubcategory_id = Subsubcategory.id')
                                        )
                                );
       * $options['contain']* = array('Language.id'); 
       * $options['fields'] *= array('Register.id', 'Register.title', 
'Register.tags', 'Language.id', 'Category.name', 'Subcategory.name',
        'Subsubcategory.name');
        *$options['conditions'] *= array(   * 'AND'* => 
array('Register.published_by >' => 0, 'Language.id =' => 3),    
                                       * 'OR' *=> array(    'Register.title 
LIKE' => '%'.$params['search'].'%',
                                                        'Register.tags LIKE' 
=> '%'.$params['search'].'%',
                                                        'Category.name LIKE' 
=> '%'.$params['search'].'%',
                                                        'Subcategory.name 
LIKE' => '%'.$params['search'].'%',
                                                        'Subsubcategory.name 
LIKE' => '%'.$params['search'].'%')
                                                            
                                                                
                                    );
        *$options['group'] *= 'Register.id';
        *$this->find('all', $options);
*
I explain... I'm searching the word typed in Registers, when they are 
published and in english ('AND') and I want to show all the results matched 
in either Register.title, Register.tags, Category.name, Subcategory.name, 
Subsubcategory.name
Those three last tables have a relation HABTM with Register, Language has a 
relation Belongs to

running this with te part in orange commented out works well, but it doesn't 
search in subsubcategories table. But if I run all it works but it ommits 
some posts that shouldn't be ommited. I've checked many times possible typo 
mistakes and I don't find them... I wonder if 3 inner joins is too much (I 
doubt that) but I don't understand what's on the way... 

I also read somewhere that Containable doesn't work with joins... but as I 
said commenting the orange part it works fine..

I also wonder if using a custom query with UNION is better...

Then actually I would like to check if user had entered more than one word 
and check each word separately and together... is then this the best way or 
should I consider different options...

I'm a bit lost, but I guess that what I'm pretending to do is somehow common 
to many of you so please if you could help with directions, ideas?

thanks!

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to