如何从php中的数据库表创建表单下拉列表?

时间:2009-05-25 13:21:16

标签: php mysql html forms drop-down-menu

我正在尝试编写一个函数,该函数创建从数据库中选择的学校名称下拉列表。它正在创建一个下拉列表,但它没有在下拉列表中放置任何内容。这是代码:

function schoolDD($name, $selected){
   $select = '';
   if( $selected != null )
   {
      $select = $selected;
   }

     $qry = "select *   
             from   school
             order by name, id
             where display = 'Y'";

     $schools = _execQry($qry);


   $html = '<select name="'.$name.'" >';

   foreach( $schools as $s ){
      $html .= '<option value="'. $s['id'] .'"';
      if( $select == $s['name'] ){
         $html .= 'selected="selected"';
      }
      $html .= '>'. $s['name'] . '</option>';

   }
   $html .= '</select>';
   return $html;
}

3 个答案:

答案 0 :(得分:0)

问题解决了。这是因为在我之前订购的查询中。应该是:

$qry = "select *   
             from   school
             where display = 'Y'
             order by name, id";

 $qry = "select *   
             from   school
             order by name, id
             where display = 'Y'";

答案 1 :(得分:0)

看起来很好,但很难说不知道_execQry会做什么。

如果添加行

print_r($schools);

调用_execQry后,你肯定是从数据库中检索结果吗?

答案 2 :(得分:0)

我很高兴你找到了答案,但我喜欢将php和html混合在一起。

这样的tsomethign怎么样......

<?php

$schools = getSchools();
$selectedSchool = 'sfgsfgd';
$name = 'asdfsafd';

?>

<select name="<?= $name ?>">
<?php foreach( $schools as $s ): ?>
    <option value="<?= $s['id'] ?>"<?php if( $s['name'] == $selectedSchool ): ?> selected="selected"<?php endif; ?>><?= $s['name'] ?></option>
</select>