2012-09-29 65 views
0

有人可以告訴我爲什麼以下內容不會使用我數據庫的dist_itnry列中的值填充下拉列表?php下拉式人口

<?php 
$distUsr = $_SESSION['Distributor_user']; 
$con=mysql_connect('localhost','root') or die ("Server connection failure!"); 
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database"); 
$SQL1="SELECT dist_itnry, route FROM sr_itinerary"; 
$run1=mysql_query($SQL1,$con) or die ("SQL Error"); 
$nor1=mysql_num_rows($run1); 

while($rec=mysql_fetch_array($run1)) 
{ 
    while ($rec = $distUsr) 
    { 
     echo "<option id='options'>$rec<br></option>"; 
    } 
} 
?> 
+3

內心的while循環看起來很可疑 - 如果'$ distUsr'將強制轉換爲布爾值true,你就會有一個無限循環出現。另外,'$ rec'是你的行結果數組,然後你立即重新分配它(在內部循環中) - 爲什麼?您應該在這裏進行一些調試 - 嘗試打印行數以查看是否正確。 – halfer

+3

你爲什麼在用'$ distUsr'覆蓋'$ rec'時執行查詢? – Gordon

+2

'while($ rec = $ distUsr)'對我沒有多大意義。你也可以在你的問題*「dist_itnry專欄」*中說,但是你似乎從未在'$ rec'中訪問過那個專欄。 – Havelock

回答

1

你被覆蓋$rec。另外,請看看我做的其他更改,包括<select>標籤和<option>標籤的更正確用法。您可以爲<option>標籤指定一個不同的值。例如:<option value="123">Something</option> - 這意味着「123」將是表單提交時提交的值。但「表格」中將顯示「Something」。

修正代碼如下:

<?php 
$distUsr = $_SESSION['Distributor_user']; 
$con=mysql_connect('localhost','root') or die ("Server connection failure!"); 
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database"); 
$SQL1="SELECT dist_itnry, route FROM sr_itinerary"; 
$run1=mysql_query($SQL1,$con) or die ("SQL Error"); 
$nor1=mysql_num_rows($run1); 
echo '<select name="dropdown">'; 
while($rec=mysql_fetch_array($run1)) 
{ 
    $value = $rec['dist_itnry']; 
    echo "<option value=\"$value\">$value</option>"; 
} 
echo '</select>'; 
?> 
+0

太棒了!感謝rationalboss! –