Re: WHERE field = a range of values (value
| From: | Richard S. Crawford | Date: | Tue, 24 May 2011 14:09:34 +0000 |
| Subject: | Re: WHERE field = a range of values (value | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-313130@lists.php.net to get a copy of this message | ||
On Tue, May 24, 2011 at 6:51 AM, Paul S <paul.s@roadrunner.com> wrote:
> I'd like to check a table to retrieve rows for which one field equals one
> of a set of values
>
> ....
> #get products(fields) in category list
> while ($row = $db_connect->fetch_array($productsincategory_list)) {
> $product = $row ['selection'];
> $fields = "$fields" . " $product,";
> }
> $fields = substr($fields,'',-1);
>
> ###### echo "$fields<br><br>";
> ###### $fields = Prod1, ProD2, Prod3
>
> This ...
>
> $db_connect->fetch_array($sql_result);
>
> $store_result = $db_connect->query("select * from $sql_usertable WHERE
> (($sql_usertable.product1 = '($fields)')||( $sql_usertable.product2 =
> '($fields)')||($sql_usertable.product3 = '($fields)')) order by id desc
> limit $entry, $entries_per_page");
>
> doesn't work. It selects nothing (obviously because no single field equals
> ' (Prod1, Prod2, Prod3) '). But it's the idea. Can I change the:
>
> = '($fields)'
>
> syntax I'm trying?
>
> The actual select checks more fields for this or that and gets more
> complicated so I'd like to keep this as simple
> as possible. I would like to do this without UNIONS (in one pass) if
> possible (my
> dbsql.php doesn't seem to go beyond regular query).
>
Try "in":
where productx in (Prod1, Prod2, Prod3)
--
Sláinte,
Richard S. Crawford (richard@underpope.com)
http://www.underpope.com
Publisher and Editor in Chief, Daikaijuzine (http://www.daikaijuzine.com)