如何从数据库中获取值到下拉列表中

时间:2016-02-24 12:06:13

标签: php mysql

我是mysql的新手,下面是我试图从数据库中获取值但得到错误的代码。

  

错误:解析错误:语法错误,意外''   (T_ENCAPSED_AND_WHITESPACE),期待标识符(T_STRING)或   变量(T_VARIABLE)或数字(T_NUM_STRING)

代码:

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td align='center'>" . $row['ticket_no']. "</td>";
echo "<td align='center'> <select>
<?php 
$host='localhost'; // Host name 
$username='root'; // Mysql username 
$password=''; // Mysql password 
$db_name='testing'; // Database name  

// Connect to server and select databse.
$conn=mysqli_connect($host,$username,$password) or die('cannot connect'); 

mysqli_select_db($conn,$db_name);

$username='SELECT name from user where role="Support"';
$uresult=mysqli_query($username) or die(.mysqli_error());
while($rows=mysqli_fetch_array($uresult))
{
$name=$rows['name'];
echo '<option>$name</option>';
}
?></select> </td>";
echo "</tr>";
}

2 个答案:

答案 0 :(得分:1)

像这样,它应该有效:

<?php
while($row = mysqli_fetch_array($result))
{
    echo "<tr>";
    echo "<td align='center'>" . $row['ticket_no']. "</td>";
    echo "<td align='center'> <select>";
    $host='localhost'; // Host name 
    $username='root'; // Mysql username 
    $password=''; // Mysql password 
    $db_name='testing'; // Database name  

    // Connect to server and select databse.
    $conn=mysqli_connect($host,$username,$password) or die('cannot connect'); 

    mysqli_select_db($conn,$db_name);

    $username='SELECT name from user where role="Support"';
    $uresult=mysqli_query($username) or die(mysqli_error($conn));
    while($rows=mysqli_fetch_array($uresult))
    {
        $name=$rows['name'];
        echo "<option>$name</option>";
    }
    echo "</select></td>";
    echo "</tr>";
}
?>

但最终最好一次查询所有用户,而不是在外部while循环的每次迭代中选择它们。

答案 1 :(得分:0)

我相信$ name的数据有一些特殊字符,如双引号,所以为了成功执行程序,你需要:

  1. 使用内置函数mysqli_real_escape_string来转义字符串中的特殊字符,以便在SQL语句中使用。

    $ name = $ mysqli-&gt; real_escape_string($ name); //面向对象的风格 或者

    $ name = mysqli_real_escape_string($ name,$ conn); //程序风格

  2. 清除数据并删除特殊字符。