gpt4 book ai didi

PHP MySQL 将帖子链接到用户

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:01 25 4
gpt4 key购买 nike

我决定为这个主题打开一个新问题,因为我一直有问题。我的博客有一个 mysql 数据库,其中包含 posts 表和一个 post_user 字段。每个用户都有一个表单,可以向公共(public)博客提交帖子。一旦他们提交了这个表格,完成了一个标题和一个正文,当它被发布在博客上时,它应该说 by Username。我的想法是,我可以在提交表单时使用 $_SESSION 信息将用户名保存到数据库中的 post_user,但我不确定如何执行此操作。任何帮助将不胜感激。

表单,使用旧的 UNSECURE 方式进入 session 作者,请注意我只在表单中包含 session 数据以显示我想在博客文章中显示的内容,我不知道该怎么做其他方式因此我的问题:

<form action="" method="post">
<p>
<input type="hidden" name="user" id="user" value="<?php echo $_SESSION['user']['username'] ?>" readonly />
</p>
<p>
<input type="hidden" name="userid" id="userid" value="<?php echo $_SESSION['user']['id'] ?>" readonly />
</p>
<p>
<label for="title">Title: </label>
<input type="text" name="title" id="title" />
</p>
<p>
<textarea name="body" rows="20" cols="60"></textarea>
</p>
<p>
<input type="submit" value="Add Post" />
</p>
</form>

发布条目的代码:

$posts = get_posts();
foreach($posts as $post)
{
?>

<h2><a href ="blog_read.php?pid=<?php echo $post['id']; ?>"><?php echo $post['title']; ?></a></h2>
<h4>By <font color="#FF6347"><?php echo $post['user']; ?></a></font> on <?php echo $post['date']; ?></h4>
<h4><?php echo $post['total_comments']; ?> comments, last comment <?php echo $post['last_comment']; ?>
<hr />

<p><?php echo $post['preview']; ?></p>
<?php

}

?>

最佳答案

您不应该将用户名保存在帖子表中。您应该有两个单独的表:一个用于帖子,一个用于用户,它们通过 user_id 字段链接,也就是 foreign key

这是关系数据库(例如 MySQL)的操作方式。这有几个目的:

  1. 在一对多关系的情况下避免重复,这正是您的情况:一个用户可以发布多篇文章。

  2. 您使用唯一标识符。

  3. 信息组织得更好,而不是将数据混合在一起。

在检索数据时将表绑定(bind)在一起的方法是使用 JOIN 语句,该语句通过公共(public) user_id 字段链接两个表。强烈建议将该字段作为索引,这将显着加快数据检索速度。 (想一想通过浏览每一页来查找书中的某个单词或句子与使用索引查找章节之间的区别)

总而言之,您的 $_SESSION super 全局数组中应该有一个 id 键,然后将其插入到 user_id提交后的字段。

至于您的问题,您不需要发送带有隐藏输入字段的 session 数据,因为即使在提交后它也可用 - 毕竟这就是 session 的全部内容。那么,为什么要将其转换为 $_POST 并公开公开呢?

关于PHP MySQL 将帖子链接到用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17553100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com