Hi, your understanding of single select boxes is wrong.
<select name="category[]">
This will set your select box name to category[0]. The first element of the category array, NOT the value of your option.
If you set it to:
<select name="category">
<option value="0">Pie</option>
<option value="1">Beer</option>
<option value="2">Chicks</option>
</select>
And the user selects "Chicks", the value of $_POST['category'] (or $category if you have register_globals off) will be 2.
If you have it like you had it before with the [], to get the value you would need to do $_POST['category'][0].
Hope that helps,
Matt