You're producing a query of the form SELECT x,y,z FROM table WHERE cat ="a,b,c" AND subcat="d,e,f";
Try: IMPLODE("\" OR \"",$category) or maybe even IMPLODE('" OR "',$category) to remove all the escaping. Doug On Fri, 1 Mar 2002 16:14:17 -0000, John Lodge wrote: >This is the sort of thing I would do > >$tmpquery = "SELECT item_pic, cat, sub, item_name, username FROM item_name >WHERE 1=1 AND"; >if($category) >{ >$filter1 = " cat =\""; >$filter1 .= implode("\",\"",$category); >$filter1 .= " \" "; >$tmpquery .= $filter1; >$tmpquery .= " AND "; >} >if($subcat) >{ >$filter2 = " sub =\""; >$filter2 .= implode("\",\"", $subcat); >$filter2 .= "\""; >$tmpquery .= $filter2; >$tmpquery .= " AND "; >} > >$query=substr($tmpquery,0,strlen($tmpquery) - 4); // remove extra AND > > > >I haven't tried this with checkboxes, but you should get the idea. This >works with other >queries that I have done. > >John Lodge > >-----Original Message----- >From: Trelfa, Jonathon [mailto:[EMAIL PROTECTED]] >Sent: Friday, March 01, 2002 3:45 PM >To: SQL Mailing List (E-mail) >Subject: Complex query with PHP/MySQL > > >I am attempting to generate a query statement (using PHP) that is generated >based on user input from 2 sets of checkboxes. You can see a >barely-functioning version at this URL: > >http://www.nobleaccord.com/view/view.php > >The top part of the form just shows what the query statement looks like. >The bottom form actually shows something (it's a much much simpler query). > >Anyway, my goal is to be able to make a complex filter for the query so that >the items I want to see are shown. Here's the code for the form process: > ><h3>The results of your query are as follows:</h3> ><table border=0 cellspacing=0 cellpadding=0 align=center width=90%> > <tr> > <td> ><?PHP > >$connect = mysql_connect ($host, $user, $pass) or die("Unable to connect to >database"); > >@mysql_select_db("nobleacc_items",$connect) or die ("Unable to select data >table"); > >if ($submit1) >{ > >$filter1 = " cat =\""; >$filter1 .= implode("\",\"",$category); >$filter1 .= " \" "; > >$filter2 = " sub =\""; >$filter2 .= implode("\",\"", $subcat); >$filter2 .= "\""; > >$query = "SELECT item_pic, cat, sub, item_name, username FROM item_name >WHERE $filter1 AND ($filter2)"; > >$result = mysql_query ($query, $connect); > >print "<b>The first filter is:</b> $filter1<br>"; >print "<b>The second filter is:</b> $filter2<br>"; >print "<b>The query you just built is:</b> $query<br>"; >?> > > >My question is this...how do I make this work better? I am getting errors >as it stands right now so I am pretty sure that the query that is built >isn't correct. > >Thanks, > >Jon Trelfa > >--------------------------------------------------------------------- >Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > >To request this thread, e-mail <[EMAIL PROTECTED]> >To unsubscribe, e-mail ><[EMAIL PROTECTED]> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > >--------------------------------------------------------------------- >Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > >To request this thread, e-mail <[EMAIL PROTECTED]> >To unsubscribe, e-mail <[EMAIL PROTECTED]> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php