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

Php 仅显示特定用户帖子的超链接,php,session,Php,Session,我有一个如下的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_

我有一个如下的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         ******
用户表如下所示:

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_id是users表的外键

注:

假设我使用$\u session['user\u id']成功地存储了用户的会话

假设我也可以成功地回显所有3篇文章的标题及其用户名

现在我想回显某个用户的文章标题的编辑超链接,例如,用户登录后的用户id 1或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>";
            }
然后我测试它,你知道,它在每个帖子标题中显示编辑超链接,但不是我所期望的

你能帮忙吗?谢谢

$uid = isset($_SESSION['user_id']);
这将导致正确或错误。试一试

$uid = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : -1;
我所做的是使用一个三元运算符,因此如果设置了会话变量,则将其设置为-1,否则将其设置为-1,这很可能不存在于表id列中