1

I'm new to checkboxes. I want to let users do a search based on three possible filters represented by checkbox lists. For example, if I used the form below, I'd like the user to be able to include all shapes that are (red or blue) and large. The advice I've been able to find about checkbox queries hasn't hit this issue exactly. Is there a way I can do this with one MySQL query?

<form action="dbdquery.php" method="get">


<p>
Color:
<br/>
<input type="checkbox" name="color[]" value="Include All" checked/> Include All<br/>
<input type="checkbox" name="color[]" value="Red"/> Red<br/>
<input type="checkbox" name="color[]" value="Blue"/> Blue<br/>
<input type="checkbox" name="color[]" value="Yellow"/> Yellow<br/>

</p>

<p>
Size:
<br/>
<input type="checkbox" name="size[]" value="Include All" checked/> Include All<br/>
<input type="checkbox" name="size[]" value="Small"/> Small<br/>
<input type="checkbox" name="size[]" value="Medium"/> Medium<br/>
<input type="checkbox" name="size[]" value="Large"/> Large<br/>

</p>


<p>
Shape:
<br/>
<input type="checkbox" name="shape[]" value="Include All" checked/> Include All<br/>
<input type="checkbox" name="shape[]" value="Round"/> Round<br/>
<input type="checkbox" name="shape[]" value="Square"/> Square<br/>
<input type="checkbox" name="shape[]" value="Irregular"/> Irregular<br/>

</p>


    <input type="submit" value="Search">

</form>

1 Answer 1

2

Try this:

Use implode function,

$colors = implode("," , $_GET['color']);

$size = implode("," , $_GET['size']);

$shape = implode("," , $_GET['shape']);

Query:

select * from table where color in ($colors) or size in ($size) or shape in ($shape);

You need to add condition to check Include all. (if user check select all the variables include all the checking values)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.