Php 从数据库中输入selectlist

Php 从数据库中输入selectlist,php,sql-server,database,selectlist,Php,Sql Server,Database,Selectlist,我正在尝试从我的数据库中填写selectlist。我只想让“blogID”一栏填满它,但是我得到了10个不同的选择列表,都说“选择一个”。我真的不知道怎么解决它 <?php error_reporting(E_ALL); ini_set('display_errors', 1); $serverName = "localhost"; $uid = "*****"; $pwd = "*****"; $databaseName = "blog"; $connectionInfo

我正在尝试从我的数据库中填写selectlist。我只想让“blogID”一栏填满它,但是我得到了10个不同的选择列表,都说“选择一个”。我真的不知道怎么解决它

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

选一个

我做错了什么?尝试了几种不同的方法,但这是我能得到的最接近的方法。

因为您正在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中使用短标记,因为您正在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中使用短标记

只需移动
标记并
在循环外选择一个
选项,就不需要使用
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); ?>

选一个
只需移动
标记并
在循环外部选择一个
选项,就不需要使用
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); ?>

选一个

同时移动选项-在循环外选择一个谢谢,再靠近一步,现在我得到1个selectlist,但所有值均为“choose one”的选项也移动选项-在循环外选择一个谢谢,再靠近一步,现在我得到1个selectlist,但所有值均为“choose one”您需要将开始标记
移动到
while()
循环之前,并在
while()
循环关闭之后移动结束标记
。此外,您不需要在
$row['blogID']
->
foreach($row['blogID']作为$name)
上循环。只需直接输出->
您需要将开始标记
移动到
while()
循环之前,然后将结束标记
移动到
while()
循环关闭之后。此外,您不需要在
$row['blogID']
->
foreach($row['blogID']作为$name)
上循环。直接输出->