2015-11-03 54 views
-1

我已經完成谷歌搜索並找到了幾個答案,但我無法得到這個工作。我正在嘗試從ym mysql數據庫讀取一個字段,並創建並填充包含這些值的組合框。數據庫連接的作品,但我得到的是一個值列表,沒有組合框。我發佈我的代碼以及結果。用php創建並填充mysql數據組合框

<?php 
$cn=mysql_connect("localhost","username","password") or die(mysql_error()); 
mysql_select_db("db_name",$cn) or die(mysql_error()); 
$sql = "SELECT LoadNumber FROM tblLoads"; 
$result = mysql_query($sql); 
?> 
<select name="loads" size=1> 
<? 
while($ri = mysql_fetch_array($result)) 
{ 
echo "<option value=" .$ri['LoadNumber'] . ">" . $ri['LoadNumber'] . "</option>"; 
} 
echo "</select> " 
?> 

這裏是我的輸出:

1637825 
1637933 
1638102 
1638109 
1638574 
1638683 
> 

請,這是推動我瘋了,我不明白我在做什麼錯。它不創建組合框。

+1

你能檢查並提供你生成的HTML嗎?例如,通過瀏覽你的代碼,我注意到你沒有在引號中包含'$ ri ['LoadNumber']的值。 –

+0

您沒有關閉這個'echo「」'並確保啓用短標籤。錯誤報告會顯示「語法」錯誤,這是** off-topic **。 –

+0

此問題已被瀏覽2500次以上,沒有人能給我一個積極的投票嗎?這是一個很好的問題。 – Musicdad

回答

1

您正在使代碼複雜化!它的一部分被封裝在PHP中,而其中的一部分不是。

改變了...

<select name="loads" size=1> 
<? 
while($ri = mysql_fetch_array($result)) 
{ 
echo "<option value=" .$ri['LoadNumber'] . ">" . $ri['LoadNumber'] . "</option>"; 
} 
echo "</select> " 
?> 

要這個......

<select name="loads" id="loads"> 
<?php while($ri = mysql_fetch_array($result)) { ?> 
<option value="<?php echo $ri['LoadNumber'] ?>"><?php echo $ri['LoadNumber'] ?></option> 
</select> 
<?php } ?> 

最後...你應該停止在mysql_編碼!它已被棄用,並將很快不復存在。當發生這種情況時,所有使用mysql_代碼的站點都將停止運行。

你真的應該學習pdo_mysql

編碼快樂!

+0

謝謝大家。也想通了,我把它放在身體裏,把它移到了標題頭上,它有點作用。 – Musicdad

1
Try this. 
<select name="loads" size=1> 
<?php while($ri = mysql_fetch_array($result)) 
{ 
echo "<option value=" .$ri['LoadNumber'] . ">" . $ri['LoadNumber'] . "</option>";?> 
<select> 

只是將最後一個選擇從PHP腳本中移出。

+0

添加一些註釋你改變了上面的代碼 –

+0

添加到你的答案並從評論中刪除 –