if else语句连接到登录用户唯一的DB

时间:2013-04-22 11:31:27

标签: sql pdo

我创建一个推特看起来像学习目的的平台,我已经达到了跟随和取消关注的部分。

我有两个按钮,关注和取消关注按钮,它们都工作正常如果我按下它会插入会话ID和我想要关注的用户的ID。如果我按下取消关注它将删除该行。 好的。

我现在已经在按钮上添加了ad if else语句,因此如果您按下跟随按钮,它将更改为取消关注,按下取消关注后,它会更改为关闭。

问题是,由于if else的工作取决于行是否为空,它会为每个登录用户返回相同的结果。 也许有更好的方式来显示按钮?

这就是我现在所拥有的。

    <?php foreach(fetch_users($_GET['uid'])as $user){   


    if(empty($user['follow_id'])){ ?> <form action="" method='POST'>
    <button type="submit" class="follow" name="submit" value="<?php echo $user['id'] ?>"/>FOLLOW</button> 
    </form>

<?php }    else{     ?>
    <form action="" method='POST'>
    <button type="submit" class="follow" name="delete" value="<?php echo $user['id'] ?>"/>UNFOLLOW </button> 
    </form>
    <?php 
    }
    ?>
    </form>


    </div>
    <?php } ?>


function fetch_users($uid){
global $db;
$query = $db->query("SELECT user.id, user.username, user.email, userdetails.profile_img, following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
LEFT JOIN following ON user.id = following.follow_id
WHERE user.id != '{$uid}' ");
$user = array();
while(($row = $query->fetch(PDO::FETCH_ASSOC)) !==FALSE) { 
$user[] = $row;

}
return $user;
}

1 个答案:

答案 0 :(得分:1)

<?php foreach(fetch_users($_GET['uid']) as $user): ?>
<?php $butt = $user['follow_id'] ? 'UNFOLLOW' : 'FOLLOW'; ?>
<form method='POST'>
  <button type="submit" class="follow" name="<?=$butt?>" value="<?=$user['id']?>">
    <?=$butt?>
  </button> 
</form>
<?php endforeach ?>
<?
function fetch_users($uid){
    global $db;

    $query = "SELECT user.id, username, email, profile_img, follow_id
              FROM user
              JOIN userdetails ON user.id = userdetails.user_id
              LEFT JOIN following ON user.id = following.follow_id
              WHERE user.id != ?";
    $stm = $db->prepare($query);
    $stm->execute(array($uid));
    return $stm->fetchAll();
}
相关问题