我有两个名为:博客的表格,用于显示博客帖子,评论用于显示每篇博文的评论部分。
这些字段如下:
适用于博客:
1:blog_id
2:标题
3:身体
4:作者
5:已更新
征求意见:
1:comments_id
2:姓名
3:电子邮件
4:身体
5:blog_id
表格 blog_id 字段必须相同。
现在我想要的是假设对于blog_id =“2”,我正在写评论,那么什么是插入查询,这样当我访问index.php?blog_id = 2时,我只得到那个特定的评论交。
我是指如何为特定的blog_id插入评论?
我尝试了这个查询来插入:
INSERT INTO cms.comments(blog_id, name,email,comments_body)
VALUES (
'".$arr['blog_id']."',
'".$arr['name']."',
'".$arr['email']."',
'".$arr['body']."'
) );
答案 0 :(得分:1)
好的,我自己做过[无需实现外键]。
以下是解决方案。
要求是评论的字段“blog_id”必须等于博客
的“blog_id”这可以通过以下方式完成。首先通过以下声明获取博客的“blog_id”...
$sql = "SELECT * from blog WHERE blog_id = '$blog_id'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
$iItemId = (int)$_POST['blog_id']; // obtaining necessary information
像这样使用INSERT语句,插入它......
mysql_query("INSERT INTO amityadav.comments(blog_id, name,url,email,body)
VALUES (
'$iItemId', //This variable is from the blog_posts' "blog_id" which will be inserted into the comment's "blog_id"
'".$arr['name']."',
'".$arr['url']."',
'".$arr['email']."',
'".$arr['body']."'
)");
现在为了检索它,请使用流动的查询......
$sql = "SELECT * from blog WHERE blog_id = '$blog_id'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
$iItemId = (int)$_GET['blog_id']; // obtaining necessary information
$comments = array();
$result = mysql_query("SELECT * FROM comments WHERE `blog_id` = '{$iItemId}' ORDER BY comments.id ASC ");
使用这些查询,我已经成功实现了我想要的......:)
答案 1 :(得分:0)
答案 2 :(得分:-1)
您需要将父子表概念与外键一起使用。 MySQL支持Foreign Keys
和cascading deletes
作为其数据库存储引擎的一部分。
您需要使用InnoDB
存储引擎。