Please review this code:
$current_sql = mysql_query("SELECT * FROM `product_categories` WHERE `product`='{$_GET['id']}'");
$all_sql = mysql_query("SELECT * FROM `categories`");
$in = mysql_fetch_array($current_sql);
while($ca = mysql_fetch_array($all_sql)){
echo("<label><input type=\"checkbox\" name=\"categories[]\" value=\"".$ca['ID']."\" class=\"cat_check\"");
if($edit){
if(in_array($ca['ID'], $in)){
echo(" checked=\"checked\"");
}
}
echo("> " . $ca['category'] . "</label><br/>\n");
}
This is the output:
<label><input type="checkbox" name="categories[]" value="1" class="cat_check" checked="checked"> PS3 Games</label><br/>
<label><input type="checkbox" name="categories[]" value="16" class="cat_check"> Category 2</label><br/>
<label><input type="checkbox" name="categories[]" value="17" class="cat_check" checked="checked"> Category 3</label><br/>
<label><input type="checkbox" name="categories[]" value="18" class="cat_check"> Category 4</label><br/>
<label><input type="checkbox" name="categories[]" value="19" class="cat_check"> Category 5</label><br/>
The problem is only checkbox value="17" is supposed to be checked, there are 2 MySQL databases here are are the structures:
categories:
ID | name
1 PS3 Games
16 Category 3
17 Category 4
18 Category 5
19 Category 6
product_categories
category | product
1 20
17 1
Please help!!
UPDATE:
Sorry forgot to add:
$_GET['id'] = 1
mysql_real_escape_string()to escape$_GET['id']to avoid SQL injections.