У меня в БД 2 таблицы - Категории и продукты.В таблице продуктов я использую поле внешнего ключа с именем category_id , которое содержит разделенные запятыми идентификаторы категорий, к которым относится этот продукт.Теперь я использую раскрывающийся список множественного выбора, с помощью которого администратор может выбрать несколько категорий, к которым относится данный продукт.Теперь при редактировании продукта я хочу отобразить все категории из таблицы категорий вместе с выбранными категориями для этого конкретного продукта, которые должны быть помечены как выбранные.Мой запрос похож на приведенный ниже, но моя проблема в том, что он повторяет значения категорий несколько раз.Я не хочу повторять значения.Любая помощь будет оценена.
<?PHP
$query_product = "SELECT * from cmco_products where product_id=$product_id";
$res_product = mysqli_query($conn, $query_product) or die(mysqli_error($conn));
$numrows = mysqli_num_rows($res_product); //check if the record existis into the DB
if($numrows > 0) //if the record exists into the DB
{
$row_product = mysqli_fetch_object($res_product);
$cat_id = explode(",", $row_product->category_id);
?>
<select class="form-control show-tick" name="multi_categories_id" id="multi_categories_id" multiple>
<?php
$query_categories = "SELECT * from cmco_categories order by date_created desc";
$res_categories = mysqli_query($conn, $query_categories) or die(mysqli_error($conn));
$x = 1;
while($row_categories = mysqli_fetch_array($res_categories))
{
foreach($cat_id as $key => $val)
{
$vals[$key] = trim($val)."<br />";
$qry_cat = "SELECT * from cmco_categories where category_id =".trim($val);
$res_cat = mysqli_query($conn, $qry_cat) or die(mysqli_error($conn));
$row_cat = mysqli_fetch_array($res_cat);
?>
<option value="<?php echo $row_categories['category_id']; ?>" <?php if($row_categories['category_id'] == trim($val)) { echo "selected";} ?>><?php echo $row_categories['category_name']; ?></option>
<?php
}
}
?>
</select>
<?PHP
}
?>
Спасибо