我有一个快速查询,涉及使用PHP结合html表单在数据库中插入外键id。
Comment_ID PK
Name
Comment_Body
Recipe_ID FK
的我的数据库设置如下:
recipes
Recipe_ID PK
Recipe_Name
Recipe_Description
Method
:
*<input type="hidden" class="form-control" name="Recipe_ID" autofocus value=<?php echo $row["Recipe_ID"]; ?> readonly>
Name: <input type="text" class="form-control" name="name" required autofocus>
Comment: <input type="text" class="form-control" name="comment_body" required autofocus> </br>*
HTML / PHP:
if(isset($_POST["name"])){
$name = $_POST["name"];
$name = mysqli_real_escape_string($con, $name);
}
if(isset($_POST["comment_body"])){
$comment = $_POST["comment_body"];
$comment = mysqli_real_escape_string($con, $comment);
}
if(isset($_POST["Recipe_ID"])){
$rid = $_POST["Recipe_ID"];
$rid = mysqli_real_escape_string($con, $rid);
}
$sql = "INSERT INTO comment (name, comment_body, Recipe_ID) VALUES
('$name', '$comment', '$rid')";
从表单发布的脚本
$id = $_GET["Recipe_ID"];*
*$sqlcomment = "SELECT * FROM comment WHERE Recipe_ID = '". $id . "'";
$commentsresult = mysqli_query($con, $sqlcomment);
$row = mysqli_fetch_assoc($commentsresult);*
PHP变量和SQL:
Recipe_ID
查看该食谱时,将显示与{{1}} 1相关的所有评论。
HTML表单不会发布Recipe_ID,因为在查看特定食谱页面时找不到ID。
如何使用HTML表单向数据库发布特定ID?这是在我的设计中为各种食谱创建注释的合适方法吗?
非常感谢。
答案 0 :(得分:0)
您的表单应使用$ id(或$ _GET [“Recipe_ID”]),而不是$ row [“Recipe_ID”]。如果用于获取注释的SQL没有返回任何行,则根本就没有$ row [“Recipe_ID”]。
同时您已将所需的ID传递到页面中。我假设它作为POST参数传递 - 这就是你构造SQL语句的方式。
所以请尝试以下表格:
<input type="hidden" name="Recipe_ID" autofocus value=<?php echo $id; ?>