将MySql数据提取到<select>

时间:2016-03-02 04:35:28

标签: php mysql

试图从mysql获取值到&lt; select&gt;标签。 我使用了while loop&amp;从2个不同的表中获取数据。 我已经尝试了给定的代码但无法获取数据。 请帮忙! &LT; PHP $主机= “localhost” 的; // 主机名 $用户名= “根”; // Mysql用户名 $密码= “”; // Mysql密码 $ DB_NAME = “测试”; // 数据库名称 //连接到服务器并选择数据库。 $ conn = mysqli_connect($ host,$ username,$ password)或die(“无法连接”); mysqli_select_db($康恩,$ DB_NAME); $ result = mysqli_query($ conn,“SELECT * from dummy”); $ uresult = mysqli_query($ conn,“SELECT name from user where role ='Support'”); $ UNAME =阵列(); while($ rows = mysqli_fetch_array($ uresult)) { $ UNAME [] = $行[ '名称']; } echo“&lt; table border ='1'width ='100%'&gt; &lt; tr&gt;&lt; th colspan ='7'&gt;&lt; h2 align ='center'&gt;详细信息&lt; / h2&gt;&lt; / th&gt;&lt; / tr&gt; &lt; tr bgcolor ='gray'&gt; &lt; th width ='10%'class ='text-center'&gt; Emp No.&lt; / th&gt; &lt; th width ='15%'class ='text-center'&gt;名称&lt; / th&gt; &lt; th width ='30%'class ='text-center'&gt;任务&lt; / th&gt; &lt; th width ='20%'class ='text-center'&gt;已分配给&lt; / th&gt; &LT; / TR&gt;“中; while($ row = mysqli_fetch_array($ result)) { echo“&lt; tr&gt;”; echo“&lt; td align ='center'&gt;” 。 $行[ 'EMP_NO']。 “&LT; / TD&gt;” 中; echo“&lt; td align ='center'&gt;” 。 $行[ 'EMP_NAME']。 “&LT; / TD&gt;” 中; echo“&lt; td align ='center'&gt;” 。 $ row ['task']。 “&LT; / TD&gt;” 中; echo“&lt; td align ='center'&gt;&lt; select name ='select1'&gt;&lt;?php while($ rows = mysqli_fetch_array($ uresult)){?&gt;&lt; option&gt;&lt;?php echo $ rows ['name'];?&gt;&lt; / option&gt;&lt;?php}?&gt;&lt; / select&gt;&lt; / td&gt;“; echo“&lt; / tr&gt;”; } echo“&lt; / table&gt;”; mysqli_close($康恩); ?&GT; 错误: 解析错误:语法错误,意外''(T_ENCAPSED_AND_WHITESPACE),期待标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)

3 个答案:

答案 0 :(得分:1)

无需重新获取它。你已经在这里做过了:

$uname = array();
while ($rows = mysqli_fetch_array($uresult)) {
    $uname[] = $rows['name'];
}

所以在另一个while块中,只需使用已经收集的名称:

while($row = mysqli_fetch_array($result)) {
    echo "<tr>";
        echo "<td align='center'>" . $row['emp_no']. "</td>";
        echo "<td align='center'>" . $row['emp_name']. "</td>";
        echo "<td align='center'>" . $row['task'] . "</td>";
        echo "
        <td align='center'>
            <select name='select1'>
        ";
        foreach($uname as $names) {
            echo '<option>' . $names . '</option>';
        }
        echo "
            </select>
        </td>";
    echo "</tr>";
}

或者只是使用<options>创建一个$uname的HTML字符串,然后只在echo内创建while

$uname = '';
while ($rows = mysqli_fetch_array($uresult)) {
    $uname .= '<option>' . $rows['name'] . '</option>';
}

然后在while区块:

while($row = mysqli_fetch_array($result)) {
    echo "<tr>";
        echo "<td align='center'>" . $row['emp_no']. "</td>";
        echo "<td align='center'>" . $row['emp_name']. "</td>";
        echo "<td align='center'>" . $row['task'] . "</td>";
        echo "
        <td align='center'>
            <select name='select1'>
        ";

        echo $uname; // collection of HTML string options

        echo "
            </select>
        </td>";
    echo "</tr>";
}

答案 1 :(得分:1)

错误在于以下行 你有字符串里面的PHP代码

echo "<td align='center'> <select name='select1'> <?php while ($rows=mysqli_fetch_array($uresult)) { ?><option><?php echo $rows['name'];?> </option><?php } ?> </select> </td>";

答案 2 :(得分:0)

试试这个,html中的embedding php

while($row = mysqli_fetch_array($result))
{
    ?>
    <tr>
    <td align='center'><?php echo $row['emp_no'] ?></td>
    <td align='center'><?php echo $row['emp_name'] ?></td>
    <td align='center'><?php echo $row['task'] ?></td>
    <td align='center'> <select name='select1'> 
    <?php while ($rows=mysqli_fetch_array($uresult)) { ?>
    <option><?php echo $rows['name'];?> </option><?php } ?> 
    </select> </td>
    </tr>";
    <?php 
}