отображение значений от sql в html выберите параметр, не отображающий значения - PullRequest
2 голосов
/ 06 января 2020

Я создал html форму, используя php и sql. Форма содержит поле с именем пробелы, которое является раскрывающимся списком. Значения поступают из массива, который я объявил в php. Если значения в массиве уже присутствуют в базе данных, они не должны отображаться. Итак, я сделал следующий код:

<select class="form-control" id="space" name="space">
  <option value="--Select--">--Select--</option>
  <?php
$select=mysqli_query($con,"select * from clients where Spaces IS NOT NULL");
while($menu1=mysqli_fetch_array($select))
      {
$filled =$menu1['name'];
$valuez = array("C101","C102","C103","C104");
if ($filled != $valuez) {


      ?>
    <option value="<?php echo $valuez;?>">
      <?php echo $valuez;?>
    </option>
    <?php
      }}
      ?>
</select>

, но при этом значения не отображаются. Может кто-нибудь, пожалуйста, скажите мне, что не так в моем коде. спасибо заранее

Ответы [ 3 ]

2 голосов
/ 06 января 2020

Ваш $filled является строкой, не может равняться массиву.

И вы можете просто использовать whereIn, не нужно выводить всех клиентов:

<select class="form-control" id="space" name="space">
  <option value="--Select--">--Select--</option>
  <?php
    $valuez = "'C101','C102','C103','C104'";
    $select = mysqli_query($con, "SELECT * FROM clients WHERE Space IN ($valuez)");
  ?>

<?php while($menu1 = mysqli_fetch_array($select) ) : ?>
    <option value="<?php echo $menu1['name'];?>">
      <?php echo $menu1['name'];?>
    </option>
<?php endwhile; ?> 
</select>
1 голос
/ 06 января 2020

Попробуйте и убедитесь, что значение, которое вы хотите отобразить в качестве опций, относится к имени столбца или пробелам. Я использовал столбец имени ($ menu1 ['name']) согласно вашему коду.

<select class="form-control" id="space" name="space">
  <option value="--Select--">--Select--</option>
   <?php
     $select = mysqli_query($con,"select * from clients where Spaces NOT IN ('C101','C102','C103','C104')");
     while($menu1=mysqli_fetch_array($select)) {
       $filled = $menu1['name'];
       if (!empty($filled)) {
   ?>
   <option value="<?php echo $filled;?>">
     <?php echo $filled;?>
   </option>
  <?php
    }}
  ?>
</select>
1 голос
/ 06 января 2020

вы сравниваете строку с массивом. Вы должны использовать in_array следующим образом:

 <select class="form-control" id="space" name="space">
   <option value="--Select--">--Select--</option>
 <?php
  $select=mysqli_query($con,"select * from clients where Space IS NOT NULL");
 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 
    }
 }
}
?>

обновить код

...