繁体   English   中英

仅显示特定用户帖子的超链接

[英]show hyperlink only for a certain user's 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

和一个用户表是这样的:

user_id          username         email                    password
   1               name1          email1@domain.com         ******
   2               name2          email2@domain.com         ******

posts表中的user_idusers表的外键。

注意:

假设我使用$_SESSION['user_id']成功存储了用户会话。

假设我也可以成功回应所有3个帖子标题及其用户名。

现在,我想显某个用户的帖子标题的编辑超链接<a href="edit.com">Edit</a> ,例如,用户登录后的user_id 1 or 2这意味着如果名为name1的用户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>";
            }

然后,我对其进行测试,您知道,它在每个帖子标题中都显示了编辑超链接,但没有我所期望的。

你能帮我吗? 谢谢

$uid = isset($_SESSION['user_id']);

结果为真或假。 尝试

$uid = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : -1;

我所做的是使用三元运算符,因此如果设置了会话变量,则将其设置为它,否则将其设置为-1,这很可能不存在于表id列中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM