Ограничение одинаковых значений в выпадающем списке php не работает - PullRequest
1 голос
/ 08 января 2020

У меня есть выпадающий список php, который поступает из базы данных. Если значение уже присутствует в столбце, оно не должно отображаться в раскрывающемся списке выбора, поэтому я написал следующий код:

    <select class="form-control" id="space" name="space">
      <option value="--Select--">--Select--</option>
      <?php
      $select=mysqli_query($con,"select * from clients");
     while($menuz=mysqli_fetch_array($select))
      {
      $filled =$menuz['Space'];
     $valuez = array("C101","C102","C103","C104","C105","C106","C107","C108","W1","W2","W3","W4","W5","W6","W7","W8","W9","W10","W11","W12","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10");
     foreach($valuez as $value){
        if($value != $filled){ 
        ?>
        <option value="<?php echo $value;?>">
          <?php echo $value;?>
        </option>
        <?php 
        }
     }
    }
    ?>
    </select>

Этот код работал до вчерашнего дня, ограничивая значения, которые уже находятся в столбце. Но сегодня это не работает. Ниже приведен скриншот выбранного выпадающего списка и базы данных:

enter image description here

enter image description here

Может кто угодно подскажите пожалуйста что тут не так? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 08 января 2020

попробуйте это:

while($menu1=mysqli_fetch_array($select))
 {
 $filled =$menu1['Space'];
 $valuez = array("C101","C102","C103","C104");
 foreach($valuez as $value){
    if($value != $filled){ 
    ?>
        <option value="<?php echo $value;?>">
          <?php echo $value;?>
        </option>
    <?php 
    }
 }
}
1 голос
/ 08 января 2020

Попробуйте:

<select class="form-control" id="space" name="space">
  <option value="--Select--">--Select--</option>
   <?php
     $select = mysqli_query($con,"select * from clients where Space NOT IN ('C101','C102','C103','C104','C105','C106','C107','C108','W1','W2','W3','W4','W5','W6','W7','W8','W9','W10','W11','W12','F1','F2','F3','F4','F5','F6','F7','F8','F9','F10')");
     while($menu1=mysqli_fetch_array($select)) {
       $filled = $menu1['name'];
       if (!empty($filled)) {
   ?>
   <option value="<?php echo $filled;?>">
     <?php echo $filled;?>
   </option>
  <?php
    }}
  ?>
</select>

Ваш вопрос такой же, как этот: отображение значений из sql в html выберите вариант без отображения значений

...