简体   繁体   English

使用php填充多选,同时从db循环

[英]Populate multi-select with php while loop from db

The following worked on a local environment. 以下是在当地环境中工作的。 Now that it's pushed live everything but these seems to work. 现在,除了这些看起来有效之外,所有东西都被推送了。 Displays completely empty select boxes now no checks or blank labels just empty space in the "select options" drop down. 显示完全空的选择框现在没有检查或空白标签只是在“选择选项”下拉列表中的空白空间。 select display 选择显示

<?php
  $selected = array();
  $selected = explode(",",$fill['markets']);

  $condb = mysql_query("SELECT * FROM `countries`");
  $count = mysql_num_rows($condb);
  $countries = array();
  $str;

  while ($countries = mysql_fetch_array($condb))
  {
    $str = "option{$countries['id']}";
    echo "<option value='{$str}' ";
    if(in_array($str,$selected)) {
      echo "selected>";
      echo $countries['country'];
      echo "</option>";
    } else {
      echo ">";
      echo $countries['country'];
      echo "</option>";
    }
  }      
  ?>

You should use while loop instead. 你应该使用while循环。 You can declare $i outside the loop if you need it, Try the following code: 如果需要,可以在循环外声明$i ,请尝试以下代码:

  $condb = mysql_query("SELECT * FROM `countries`");

  $i = 0;
   while($countries = mysql_fetch_array($condb)) {
    $str = 'option' . $i;
    echo "<option value='{$str}' ";
    if(in_array($str,$selected)) {
      echo "selected>";
      echo $countries['country'];
      echo "</option>";
    } else {
      echo ">";
      echo $countries['country'];
      echo "</option>";
    }
 $i++;
  }
  ?>
</select>

Note: 注意:

mysql_* is deprecated as of . 不推荐使用mysql_* So instead use mysqli_* or PDO . 所以改为使用mysqli_*PDO
Why shouldn't I use mysql_* functions in PHP? 为什么我不应该在PHP中使用mysql_ *函数?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM