我的头可能是模糊的,所以我要解释一下。
我有一个表"books"在我的数据库。我需要使用php检索表,然后选择书和关于书的评论。
我得到了检索部分,显示了一个包含我所有书籍的表。
我被困在选择书籍部分。
下面是我需要做的:
- 从DB中检索表"books"
- 从表格(即下拉列表等)中选择一些书
- 点击提交,转到另一个页面,我可以在那里留下关于那本书的评论
- 注释必须记录在DB
我只是需要帮助从表中选择书。怎么做呢?
让我假设您在表簿中有这些行book_id(PI), name author
<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和名称,或者三个都需要,请访问此链接
如果您想根据某些条件选择图书,例如,让我们输入author=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["]来获取用户输入。然后,您可以让表单使用value= id的书的隐藏值创建一个评论框使用提交按钮。然后在另一个表'comments'中,你可以有两行comment_id(PI) book_id和comment
则使用插入查询
$stmt=mysqli_prepare("insert into comments (book_id,comment) values (?,?)");
if($stmt) {
$stmt->bind_param('is',$book_id,$comment);
$stmt->execute();
}
一定要记住使用$stmt->close()和$stmt->free()。如何做到这一点将由php.net