我的标题可能模棱两可,所以我要解释一下。
我的数据库中有一张“书”表。我需要使用 php 检索表格,然后选择这本书并评论这本书。
我得到了检索部分,显示了一个包含我所有书籍的表格。
我坚持选择书籍部分。
这是我需要做的:
- 从数据库中检索表“书”
- 从该表中选择一些书(即下拉列表等)
- 按提交并转到另一个页面,我可以在其中对那本书发表评论
- 评论必须记录在数据库中
我只需要从桌子上选书的帮助。怎么做?
让我假设您在表 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 和 name 或者这三个都去这个链接
如果您想根据某些标准选择您的书籍,例如让我们说 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 回答