foreach内部while循环

时间:2018-09-23 14:50:40

标签: php mysql foreach while-loop

我的数据库中有2个表格-类别和产品。 在产品表中,我使用的是名为 category_id 的外键字段,其中包含该产品所属的逗号分隔的类别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
}
?>

谢谢

0 个答案:

没有答案