On Tue, May 24, 2011 at 6:51 AM, Paul S <pau...@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 (rich...@underpope.com)
http://www.underpope.com
Publisher and Editor in Chief, Daikaijuzine (http://www.daikaijuzine.com)

Reply via email to