Maybe we can use a search engine like SphinxSearch, Solr, ZendLucene.
On Tue, Jan 25, 2011 at 1:22 PM, Steve <[email protected]> wrote:
> Can anyone help with this ?
>
> Steve
>
> On Sun, 2011-01-23 at 15:22 +0000, Steve wrote:
> > I have a database with the following tables.
> >
> > book - Holds id, title, description, publisher ...
> > author - Holds id, name
> > books_author - Holds id, book_id, author_id
> >
> > So a many-to-many relationship on the book and author as one book can
> > have many authors and one author can have many books.
> >
> > To search for books with a text field, I have the following function in
> > the Book model
> >
> > /**
> > * Build conditions to search books for a string of text.
> > * @param string $search
> > * @return array of books that contain the searched for text in their
> > database definition.
> > */
> > function searchConditions( $search ) {
> > $like = '%' . $search . '%';
> > $conditions = array (
> > "OR" => array (
> > "Book.isbn LIKE" => $like,
> > "Book.ean LIKE" => $like,
> > "Book.name LIKE" => $like,
> > "Book.description LIKE" => $like,
> > "Book.publisher LIKE" => $like
> > )
> > );
> > return $conditions;
> > }
> >
> > My BookContoller class calls this in the following manner :
> >
> > /**
> > Display books to user optionally filtered by search text. The text
> > will have been stored in $this->search by the search() function.
> > */
> > function index() {
> > $this->Book->recursive = 1;
> > if($this->search) {
> > $this->paginate = array(
> > 'limit' => 12,
> > 'order' => array('Book.created' => 'desc'),
> > 'conditions' => $this->Book->searchConditions($this->search));
> > } else {
> > $this->paginate = array(
> > 'limit' => 12,
> > 'order' => array('Book.created' => 'desc'));
> > }
> > $this->set('books', $this->paginate('Book'));
> > }
> >
> >
> > Now...
> >
> > How do I adapt the search to include the names of the books authors ?
> >
> >
> >
>
>
> --
> 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]<cake-php%[email protected]>For
> more options, visit this group at
> http://groups.google.com/group/cake-php
>
--
Vivi
http://photos.vr-3d.net
--
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