【发布时间】:2014-09-24 22:05:42
【问题描述】:
我有一个像这样的 posts 表:
post_id user_id title date
12 1 abc 7/20/2014
13 1 cde 7/21/2014
14 2 fgh 7/22/2014
还有一个像这样的 users 表:
user_id username email password
1 name1 email1@domain.com ******
2 name2 email2@domain.com ******
posts表中的user_id是users表的外键。
注意:
假设我使用 $_SESSION['user_id'] 成功存储了用户的会话。
假设我也可以成功回显所有 3 个帖子标题及其用户名。
现在我想为某个用户的帖子标题回显编辑超链接(<a href="edit.com">Edit</a>),例如, user_id 1 or 2 登录后。这意味着如果名为name1的用户登录他的帐户并浏览id为14的帖子,他无法看到编辑超链接,因为它属于另一个名为 name2 的用户,其会话 ID(如果有)现在应该无法使用,反之亦然。
对我来说,这是我的代码:
$q = "SELECT title, post_id, p.user_id AS currentuser
FROM posts AS p
INNER JOIN users AS u USING (user_id)
ORDER BY date ASC
";
$r = mysqli_query ($dbc, $q);
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$uid = isset($_SESSION['user_id']);// variable for the seesion
$current_user = $row['currentuser'];// variable for the certain user ID
if($uid && $uid == $current_user){
echo "<a href=\"http://edit.com\"> Edit </a></div>";
}
然后我测试它,你知道,它在每个帖子标题中显示了 edit 超链接,但不是我所期望的。
你能帮忙吗?谢谢
【问题讨论】: