Re: DB_DataObjects and generating search filters
| From: | pear at electroteque dot org | Date: | Thu, 21 Apr 2005 02:02:29 +0000 |
| Subject: | Re: DB_DataObjects and generating search filters | ||
| References: | 1 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-18845@lists.php.net to get a copy of this message | ||
Thanks craig, but this would mean i would need to check if fields are set
and moves away frombeing generated from post to static setups :|
>
> If I understand your question correctly, you can't do this by simply
> setting the fields on the DB_DataObject, as it wont know to do
> anything other than an equality comparison (and combine with AND).
>
> However, you can call $data_object->whereAdd().
>
> --------------
> /**
> * Adds a condition to the WHERE statement, defaults to AND
> *
> * $object->whereAdd(); //reset or cleaer ewhwer
> * $object->whereAdd("ID > 20");
> * $object->whereAdd("age > 20","OR");
> *
> * @param string $cond condition
> * @param string $logic optional logic "OR" (defaults to "AND")
> * @access public
> * @return string|PEAR::Error - previous condition or Error when
> invalid
> args found
> */
> function whereAdd($cond = false, $logic = 'AND')
> ---------------
>
> Note that this means that your values are not automatically escaped,
> meaning that they may have quotes in them or something (or worse,
> malicious user entered SQL statements).
>
> I believe that an example of the correct technique to use value from
> $_POST (providing magic quotes was off) would be something like:
>
> $my_field_value = $data_object->escape($_POST['field']);
> $data_object->whereAdd("my_field_name LIKE = '%$my_field_value%'",
> 'OR');
>
> regards,
>
> Craig
>
> On Thu, 21 Apr 2005 11:26 am, pear@electroteque.org wrote:
>> Hi there I am up to generating search filters from post vars, I was
>> wondering how I could do the following , use a setter method for a few
>> fields in particular I would like to use fulltext match against search
>> rather than field='' and also give the user the option for an OR
>> search aswell as AND , is this possible ?
>
> --
> Craig Ambrose
> Web Elements
> http://www.portallus.com/people/craigambrose/
>
> --
> PEAR General Mailing List (http://pear.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php