从表中添加数据到选择框

I'm creating a album gallery and trying to pull the albums title from my database table and add the album titles to a select box.

The problem I'm having is it only grabs 1 title and not the rest.

Example select box of what is currently happening:

  1. Please Choose
  2. Album title 1

Example select box of what I need:

  1. Please Choose
  2. Album title 1
  3. Album title 2
  4. Album title 3
  5. Album title 4

I need the value of the select box to contain the title of the Album because I plan on using it in another table. So the value cannot be an integer.

Here is my code:

        <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 } ?>

You need to create the loop correctly (assuming the query does yield some rows):

<?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>

The Please choose and the are INSIDE the foreach, so they are called multiple times.

Change it to this:

?>
<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>