我创建一个推特看起来像学习目的的平台,我已经达到了跟随和取消关注的部分。
我有两个按钮,关注和取消关注按钮,它们都工作正常如果我按下它会插入会话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;
}
答案 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();
}