2016-02-15 30 views
0

我想從我的數據庫中填充一個selectlist。我只想要'blogID'這一列來填充它,但是我得到了10個不同的選擇列表,都說「選擇一個」。我不知道如何解決它。從數據庫中提供selectlist

<?php 
error_reporting(E_ALL); ini_set('display_errors', 1); 
$serverName = "localhost"; 
$uid = "*****"; 
$pwd = "*****"; 
$databaseName = "blog"; 

$connectionInfo = array("UID"=>$uid,        
"PWD"=>$pwd,        
"Database"=>$databaseName); 
$con=sqlsrv_connect($serverName, $connectionInfo); 
if ($con) 
{ 
} else { 
die(print_r(sqlsrv_errors(), true)); 
} 
$result = sqlsrv_query($con,"SELECT TOP 10 * FROM blog_posts ORDER BY blogID DESC"); 
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_BOTH)) 
{ 
?> 
<select> 
<option selected="selected">Choose one</option> 
<?php 
foreach($row['blogID'] as $name) { ?> 
    <option><?= $name['name'] ?></option> 
<?php 
} ?> 
</select> 

<?php } sqlsrv_close($con); ?> 

我做錯了什麼?試圖severeal不同的方法,但這是接近我得到..

+0

你需要你',而()'循環之前將您的開始標記''後您的'而( )'循環關閉。另外,你不需要遍歷你的'$ row ['blogID']' - >'foreach($ row ['blogID'] as $ name)''。直接輸出 - >'',因爲它是一個值,而不是一個數組 – Sean

回答

2

只是移動<select>標籤和choose one選項循環之外,並沒有必要foreach循環。這是你的代碼的正確方法。

<?php 
error_reporting(E_ALL); ini_set('display_errors', 1); 
$serverName = "localhost"; 
$uid = "*****"; 
$pwd = "*****"; 
$databaseName = "blog"; 

$connectionInfo = array("UID"=>$uid,        
"PWD"=>$pwd,        
"Database"=>$databaseName); 
$con=sqlsrv_connect($serverName, $connectionInfo); 
if ($con) 
{ 
} else { 
die(print_r(sqlsrv_errors(), true)); 
} 
$result = sqlsrv_query($con,"SELECT TOP 10 * FROM blog_posts ORDER BY blogID DESC"); 
?> 
<select> 
<option selected="selected">Choose one</option> 
<?php 
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_BOTH)) 
{ 
?> 
<option><?= $row['name'] ?></option> 
<?php 
} 
?> 
</select> 
<?php 
sqlsrv_close($con); ?> 
3

因爲你正在使用<select> while循環中。

試試這個:

<?php 
    error_reporting(E_ALL); ini_set('display_errors', 1); 
    $serverName = "localhost"; 
    $uid = "*****"; 
    $pwd = "*****"; 
    $databaseName = "blog"; 

    $connectionInfo = array("UID"=>$uid,        
    "PWD"=>$pwd,        
    "Database"=>$databaseName); 
    $con=sqlsrv_connect($serverName, $connectionInfo); 
    if ($con) 
    { 
    } else { 
    die(print_r(sqlsrv_errors(), true)); 
    } 
    $result = sqlsrv_query($con,"SELECT TOP 10 * FROM blog_posts ORDER BY blogID DESC"); 
    ?> 
    <select> 
    <option selected="selected">Choose one</option> 
    <?php 
    while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_BOTH)) 
    { 
    ?> 
     <option><?= $row['blogID'] ?></option> 
    <?php } 
    ?> 
    </select> 
    <?php 
    sqlsrv_close($con); ?> 

請不要使用短標記在PHP

+2

也動選項 - 選擇循環 –

+0

謝謝之一外,更近了一步,現在我得到1個選擇列表的,但所有值「選擇一個」 –

+0

是那是正確的。謝謝。 –