我正在创建一个相册库并尝试从我的数据库表中提取相册标题,并将相册标题添加到选择框中。
我遇到的问题是它只获得1个冠军,而不是其余的。
示例选择当前正在发生的事情:
示例选择我需要的内容:
我需要选择框的值来包含相册的标题,因为我打算在另一个表中使用它。所以这个值不能是整数。
这是我的代码:
<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 } ?>
答案 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>