2014-09-23 205 views
0

中的選擇框我正在創建一個相冊庫,並嘗試從我的數據庫表中拉出相冊標題並將專輯標題添加到選擇框中。將數據添加到表

我遇到的問題是它只抓取1個標題而沒有其餘。

例選擇的是什麼目前發生的事情箱:

  1. 請選擇
  2. 專輯標題1

例選擇的是什麼,我需要對話框:

  1. 請選擇
  2. 專輯標題1
  3. 相冊標題2
  4. 相冊標題3
  5. 專輯標題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 } ?> 
+2

你是否意識到你創建選項**請選擇**並在每個循環迭代結束選擇的元素? – 2014-09-23 15:49:38

+1

你的'<選項選擇=「選中」值=「」>請選擇'應該在循環之外。 – nilobarp 2014-09-23 15:50:05

+0

AHH dangit,很好。我忽略了這一點。 – echo 2014-09-23 15:53:42

回答

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> 
+0

感謝大家的幫助,現在所有人都能正常工作。 – echo 2014-09-23 16:00:20

+0

@echo確定男人很高興它幫助 – Ghost 2014-09-23 16:00:41

+1

感謝您的幫助和這個小提示。 'value =「」disabled「從你身上學到了兩件事。再次感謝。 – echo 2014-09-23 16:02:47

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>