值出现两次,同时在 php 的选择下拉列表中限制相同的值

我在 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>

现在的问题是值在选择列中显示了两次。第一次显示所有值,然后显示我想要的不在数据库中的值。谁能帮我解决这个问题。


至尊宝的传说
浏览 148回答 1
1回答

MYYA

看看以下选项:选项 1:刚刚在 SQL 查询中添加了 DISTINCT<select class="form-control" id="space" name="space">&nbsp; &nbsp;<option value="--Select--">--Select--</option>&nbsp; &nbsp;<?php&nbsp; &nbsp; $select=mysqli_query($con,"select DISTINCT `Space` from clients");&nbsp; &nbsp; while($menuz=mysqli_fetch_array($select)){&nbsp; &nbsp; $filled =$menuz['Space'];&nbsp; &nbsp; $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");&nbsp; &nbsp; foreach($valuez as $value){&nbsp; &nbsp; &nbsp; if($value != $filled){&nbsp; &nbsp; &nbsp; &nbsp; ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <option value="<?php echo $value;?>">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php echo $value; ?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </option>&nbsp; &nbsp; &nbsp; &nbsp; <?php&nbsp;&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; }&nbsp; ?>&nbsp;</select>或者选项 2:仅使用“NOT IN”忽略 SQL 查询中的现有值集。在这里,您可以使用准备好的语句来避免 SQL 注入。仅出于演示目的,我在这里展示了一个带有嵌入式输入参数的查询。<?php&nbsp; $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");?><select class="form-control" id="space" name="space">&nbsp; &nbsp;<option value="--Select--">--Select--</option>&nbsp; &nbsp;<?php&nbsp; &nbsp; $select=mysqli_query($con,"SELECT DISTINCT `Space` FROM `clients` WHERE `Space` NOT IN ('". implode("', '", $valuez) ."')");&nbsp; &nbsp; while($menuz=mysqli_fetch_array($select)){&nbsp; &nbsp; &nbsp; $filled =$menuz['Space'];&nbsp; &nbsp; &nbsp; ?>&nbsp; &nbsp; &nbsp; <option value="<?php echo $filled;?>">&nbsp; &nbsp; &nbsp; &nbsp; <?php echo $filled; ?>&nbsp; &nbsp; &nbsp; </option>&nbsp; &nbsp; &nbsp; <?php&nbsp; &nbsp; }&nbsp; ?>&nbsp;</select>
打开App,查看更多内容
随时随地看视频慕课网APP