0

私のヘッダーはおそらくあいまいなので、説明します。

データベースに「books」というテーブルがあります。PHP を使用してテーブルを取得し、本を選択して本についてコメントする必要があります。

検索部分を取得しました。すべての本を含むテーブルが表示されます。

本の部分を選択するのに行き詰まっています。

これが私がしなければならないことです:

  1. DB からテーブル「books」を取得します
  2. そのテーブルからいくつかの本を選択してください (つまり、ドロップダウン リストなど)。
  3. 送信を押して別のページに移動し、その本についてコメントを残すことができます
  4. コメントはDBに記録する必要があります

テーブルから本を選ぶのに助けが必要です。どうやってするの?

4

1 に答える 1

1

テーブル book 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と名前の両方、または3つすべてが必要な場合は、このリンク にアクセスしてください

特定の基準で本を選択したい場合、たとえば、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 の 2 つの行を含めることができます。

次に、挿入クエリを使用します

$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によって回答されます

于 2013-05-24T04:46:00.800 に答える