从表中添加数据到选择框

时间:2014-09-23 15:45:13

标签: php html mysql

我正在创建一个相册库并尝试从我的数据库表中提取相册标题,并将相册标题添加到选择框中。

我遇到的问题是它只获得1个冠军,而不是其余的。

示例选择当前正在发生的事情:

  1. 请选择
  2. 专辑标题1
  3. 示例选择我需要的内容:

    1. 请选择
    2. 专辑标题1
    3. 专辑标题2
    4. 专辑标题3
    5. 专辑标题4
    6. 我需要选择框的值来包含相册的标题,因为我打算在另一个表中使用它。所以这个值不能是整数。

      这是我的代码:

              <select name="album">
      <?php
      $db = DB::getInstance();
      $album = "SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC";
      $query = $db->query($album);
      foreach($query->results() as $alb){
          ?>
              <option selected="selected" value="">Please Choose</option>
              <option value="<?php echo escape($alb->album_title); ?>"><?php echo escape($alb->album_title); ?></option>
              </select>
      <?php } ?>
      

2 个答案:

答案 0 :(得分:2)

您需要正确创建循环(假设查询确实产生了一些行):

<?php
$db = DB::getInstance();
$album = "SELECT `album_id`,`album_date`,`album_title` FROM `albums` ORDER BY `album_date` DESC";
$query = $db->query($album);
?>
<select name="album">
    <option selected="selected" value="" disabled>Please Choose</option>
    <!-- just put the loop where it needs to be -->
    <?php foreach($query->results() as $alb): ?>
        <option value="<?php echo escape($alb->album_title); ?>"><?php echo escape($alb->album_title); ?></option>    
    <?php endforeach; ?>
</select>

答案 1 :(得分:1)

请选择并选择在foreach中,因此多次调用它们。

将其更改为:

?>
<option selected="selected" value="">Please Choose</option>
<?php
foreach($query->results() as $alb){
    ?>
        <option value="<?php echo escape($alb->album_title); ?>"><?php echo     escape($alb->album_title); ?></option>
<?php } ?>
</select>