使用php从DB中检索表,然后选择一个特定项

时间:2013-05-23 22:22:07

标签: php mysql

我的标题可能含糊不清,所以我要解释一下。

我的数据库中有一个表“books”。我需要使用php检索表格,然后选择书籍并对书籍发表评论。

我找到了检索部分,显示了一张包含所有书籍的表格。

我很难选择书籍部分。

以下是我需要做的事情:

  1. 从DB
  2. 中检索表“books”
  3. 从该表中选择一些书(即下拉列表等)
  4. 按提交并转到另一个页面,我可以对该书发表评论
  5. 评论必须记录在DB
  6. 我只需要帮助从表格中选择书籍。怎么做?

1 个答案:

答案 0 :(得分:1)

让我假设你在表格书中有这些行 book_id(PI),姓名作者

<form method="post" action="something.php">
<select name="book">
<?php
$stmt = $mysqli->prepare("SELECT id,name,author FROM books");
if($stmt) {
$stmt->execute();
$result = $stmt->get_result();
while ($myrow = $result->fetch_assoc()) {
echo '<option value='.$myrow['book_id'].'>'.$name.' '.$author.'</option>';
}
//instead of $result you can also do
if($stmt) {
$stmt->execute();
$stmt->bind_result($id,$name,$author):
while ($stmt->fetch()) {
echo '<option...
}
?>

如果您想同时使用ID和名称或三者都转到this链接               

如果您想根据特定条件选择图书,例如让我们说作者= enid

然后像这样修改查询:

$stmt = $mysqli->prepare("SELECT id,name,author FROM books WHERE author=?");
if($stmt) {
$stmt->bind_param("s",$input_name);
$stmt->execute();
.....

然后在something.php上使用$ _POST ['']来获取用户输入。 那么你可以使一个表格使用一个隐藏的值与该书的值= id 做一个评论框 使用提交按钮。 然后在另一个表'评论'中你可以有两行comment_id(PI)book_id和评论

然后使用插入查询

$stmt=mysqli_prepare("insert into comments (book_id,comment) values (?,?)");
if($stmt) {
 $stmt->bind_param('is',$book_id,$comment);
$stmt->execute();
}

始终记得使用$ stmt-&gt; close()和$ stmt-&gt; free()。如何做到这一点将由php.net回答