1

正如标题所说,我想从数据库中生成数据并将其显示在下拉列表中。我做了一个代码,它没有显示任何错误,但问题是它在下拉列表中回显代码。当我只是回应它时它就起作用了。还有一件事是它没有显示 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
4

2 回答 2

1

问题的陈述是错误的。

准备好的语句与下拉列表完全无关。

而且永远不必。

你必须填充的是一个数组。稍后必须在模板中使用。

所以,把你的问题一分为二。

  1. 如何选择一些数据到数组中。
  2. 如何在模板中输出数组。
于 2013-07-11T07:43:41.103 回答
1

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

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

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

也尝试使用此查询:

"SELECT author, book_name, language FROM bk_tst_fltr GROUP BY author"
于 2013-07-11T07:34:02.980 回答