亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

值出現兩次,同時在 php 的選擇下拉列表中限制相同的值

值出現兩次,同時在 php 的選擇下拉列表中限制相同的值

PHP
至尊寶的傳說 2022-07-16 16:50:07
我在 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>現在的問題是值在選擇列中顯示了兩次。第一次顯示所有值,然后顯示我想要的不在數據庫中的值。誰能幫我解決這個問題。
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

看看以下選項:


選項 1:剛剛在 SQL 查詢中添加了 DISTINCT


<select class="form-control" id="space" name="space">

   <option value="--Select--">--Select--</option>

   <?php

    $select=mysqli_query($con,"select DISTINCT `Space` 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>

或者


選項 2:僅使用“NOT IN”忽略 SQL 查詢中的現有值集。在這里,您可以使用準備好的語句來避免 SQL 注入。僅出于演示目的,我在這里展示了一個帶有嵌入式輸入參數的查詢。


<?php

  $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">

   <option value="--Select--">--Select--</option>

   <?php

    $select=mysqli_query($con,"SELECT DISTINCT `Space` FROM `clients` WHERE `Space` NOT IN ('". implode("', '", $valuez) ."')");

    while($menuz=mysqli_fetch_array($select)){

      $filled =$menuz['Space'];

      ?>

      <option value="<?php echo $filled;?>">

        <?php echo $filled; ?>

      </option>

      <?php

    }

  ?> 

</select>


查看完整回答
反對 回復 2022-07-16
  • 1 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號