将数据添加到表
问题描述:
中的选择框我正在创建一个相册库,并尝试从我的数据库表中拉出相册标题并将专辑标题添加到选择框中。将数据添加到表
我遇到的问题是它只抓取1个标题而没有其余。
例选择的是什么目前发生的事情箱:
- 请选择
- 专辑标题1
例选择的是什么,我需要对话框:
- 请选择
- 专辑标题1
- 相册标题2
- 相册标题3
- 专辑标题4
我需要选择框的值来包含相册的标题,因为我打算在另一个表中使用它。所以这个值不能是一个整数。
这里是我的代码:
<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 } ?>
答
您需要正确地创建循环(假设查询不会产生一些行):
<?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>
答
的请选择和是在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>
你是否意识到你创建选项**请选择**并在每个循环迭代结束选择的元素? – 2014-09-23 15:49:38
你的'请选择'应该在循环之外。 – nilobarp 2014-09-23 15:50:05
AHH dangit,很好。我忽略了这一点。 – echo 2014-09-23 15:53:42