使用mysqli预处理语句从数据库填充下拉列表

时间:2013-07-11 07:33:00

标签: php mysqli distinct html-select

正如标题所说,我想从数据库生成数据并在下拉列表中显示它。我创建了一个代码并且它没有显示任何错误,但事实是它在下拉列表中回显了代码。当我回应它时,它工作。还有一件事是它没有显示DISTINCT结果。

这是我的代码:

<html>
<head>
<title>FILTER</title>
</head>
<body>
<?php include 'conn.php';?>

<?php
    $stmt = $con->prepare("SELECT DISTINCT author, book_name, language FROM bk_tst_fltr ");
    $stmt->execute();
    $stmt->bind_result($author,$book_name,$language);
    $stmt->store_result();
    echo "<select name='book'>";
    while($row=$stmt->fetch()){?>
        <p><?php echo  '<option value="$row["author"]">"$row["author"]"</option>'; ?></p>
    <?php }
    echo "</select>";
?>

</body>
</html>

下拉列表中显示$row["author"]

任何人都可以解决这个问题???

谢谢。

我的数据库

id  author  book_name language price
1   Kishore One       english  500
2   Kumar   two       english  600
3   Kishore three     german   700

2 个答案:

答案 0 :(得分:1)

你应该使用双引号进行变量扩展,或者退出字符串并正常连接。

此外,请更改为while($stmt->fetch()){?>

echo '<option value="'.$author.'">"'.$author.'"</option>';

请尝试使用此查询:

"SELECT author, book_name, language FROM bk_tst_fltr GROUP BY author"

答案 1 :(得分:1)

问题陈述是错误的。

预备语句与下拉列表完全无关。

永远不必。

您需要填充的是数组。以后必须在模板中使用。

所以,将你的问题分成两部分。

  1. 如何选择一些数据到数组中。
  2. 如何在模板中输出数组。