Прежде всего, ваши флажки не должны иметь одинаковые идентификаторы.
Сделайте что-то вроде этого:
foreach ($lst_product_ids as $product_id) {
$checked = '';
$lst_rel_prods = explode(',', $arr_related_product_ids[$product_id]);
if (in_array($product_id, $lst_rel_prods))
$checked = " checked";
echo "<input value='" . $product_id . "' type='checkbox' name='rp_product[]'" . $checked . ">
}
Очевидно, если у вас есть $ lst_product_ids = array (1,2,3,4,5,6) и $ arr_related_product_ids = array (1 => 1,2,3,4,6, ', 2 => и т. Д.)
ОБНОВЛЕНИЕ: измените код на этот (РЕДАКТИРОВАТЬ: после выбора «related_products_ids»):
while($rp_2 = mysql_fetch_array($rp_1)) {
$checked = '';
$lst_rp = explode(',', $rp_2['related_products_ids']);
if (in_array($rp_2['products_id'], $lst_rp)) $checked = " checked";
echo "<li id=\"category-".$rp_2['products_id']."\" class=\"popular-category\"><label class=\"selectit\"><input value=\"".$rp_2['products_id']."\" type=\"checkbox\" name=\"rp_product[]\" id=\"\"" . $checked . "> ".$rp_2['products_name']."</label></li>";
}
Но не забывайте также использовать разные идентификаторы для каждого флажка.
EDIT: Вы также должны выбрать «related_products_ids»:
$rp_sql = "select products_id, products_name, related_products_ids from ".TABLE_PRODUCTS_DESCRIPTION." order by products_id";
ОБНОВЛЕНИЕ: для отображения значений для идентификаторов, разделенных запятыми, и с вашим текущим (возможно, негибким) способом хранения отношений, разделенных запятыми, вам придется использовать дополнительный цикл foreach($lst_rp as $rp_id)
внутри цикла while и внутрицикл foreach делает выбор SQL для каждого связанного продукта, например,
$query = "SELECT products_id, products_name FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id=" . $rp_id;
ОБНОВЛЕНИЕ: Если у вас есть новые проблемы, вам, вероятно, следует опубликовать новый вопрос и ссылку на него в качестве ссылки, иначе это может пойтинавсегда.
Попробуйте этот код.Если ваш идентификатор продукта является SQL int (), то вы не должны использовать кавычки в запросе:
$sql = "SELECT related_products_ids FROM ".TABLE_RELATED_PRODUCTS." where products_id = " . $_GET["products_id"]; // I MADE CHANGES HERE
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result); // I MADE A CHANGE HERE
$lst_rp = explode(',', $row['related_products_ids']);
foreach($lst_rp as $rp_id) {
$query = "SELECT products_id, products_name FROM ".TABLE_PRODUCTS_DESCRIPTION." WHERE products_id=" . $rp_id;
$result1 = mysql_query($res); // THIS AND THE FOLLOWING MUST STAY INSIDE THE LOOP
$row1 = mysql_fetch_assoc($result1);
echo $row1['products_name'];
}