【问题标题】:PHP dropdown database code not working?PHP下拉数据库代码不起作用?
【发布时间】:2016-07-28 19:43:41
【问题描述】:

我对下面的代码有疑问,它显示的是 html 部分,而不是我数据库中的数据。我只是想将数据库中的数据放在下拉列表中,然后单击find 将其显示在下表中。你能帮忙吗?

    <?php
    include 'config.php';
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <select name="manufacturer">
            <option value="">----ALL----</option>
        <?php
            $sql = "SELECT id, manufacturer FROM coop";
            $result = $conn->query($sql);
            while ($r = mysqli_fetch_assoc($result))
            {
                echo "<option value='$r[id]'> $r[manufacturer]</option>";
            }
        ?>
        </select>
        <input type="submit" name="find" value="find"/>
        <br><br>

        <table border="1">
            <tr align="center">
                <th>ID</th> <th>Manufacturer</th>
            </tr>

            <?php
            if($_SERVER['REQUEST_METHOD'] == "POST")
                {
                    $des=$_POST["manufacturer"];
                    if($des=="")
                    {
                        $result=  mysqli_query("SELECT id, manufacturer FROM coop");
                    }
                    else
                    {
                        $result= mysqli_query($sql);
                    }
                    echo "<tr><td colspan='5'></td></tr>";
                    while($r= mysqli_fetch_assoc($result))
                    {
                        echo "<tr>";
                        echo "<td align='center'>$r[0]</td>";
                        echo "<td width='200'>$r[1]" . " $r[2]</td>";
                        echo "<td alig='center' width='40'> $r[3]</td>";
                        echo "<td align='center' width='200'>$r[4]</td>";
                        echo "<td width='100' align='center'>$r[5]</td>";
                        echo "</tr>";
                    }
                }
            ?>
        </table>
    </body>
</html>

【问题讨论】:

  • 在您的网络浏览器中,尽您所能查看页面的源代码。 PHP 在 Web 浏览器的源代码中是否可见?如果是,那就是问题所在。如果不是,下一步是查看错误日志。
  • 您也只是假设查询成功。更不用说您的代码容易受到 SQL 注入的影响,而且由于您使用的是mysqli_,因此您应该开始在涉及用户输入的情况下使用准备好的语句。
  • 我没有看到显示表格和下拉列表的任何错误,这就是我能看到的全部
  • 您的获取关联但有$r[0].. 值属性的索引中应该是id,值属性的索引中应该是manufacturer。您也没有form,并且对 SQL 注入持开放态度。
  • 谢谢!我已经根据您的所有建议对代码进行了一些操作,现在我在下拉列表中有数据库详细信息,但它没有在表中发布它:)

标签: php html mysql mysqli


【解决方案1】:

你的queries 在这里写错了

    <?php
        $sql = "SELECT id, manufacturer FROM coop";
        $result = $conn->query($sql);
        while ($r = mysqli_fetch_assoc($sql))
        {
            echo "<option value='$r[0]'> $r[0]</option>";
        }
    ?>

这个while ($r = mysqli_fetch_assoc($sql)) 应该是while ($r = mysqli_fetch_assoc($result ))

您应该使用$result 而不是$sql 获取您的关联

下面的部分还是有一些错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    相关资源
    最近更新 更多