0

研究目的でTwitterっぽいプラットフォームを作っていて、フォローとフォロー解除の部分に手を伸ばしています。

フォローボタンとフォロー解除ボタンの2つのボタンがあり、どちらも正常に機能します。フォローを押すと、セッション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;
}
4

1 に答える 1

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();
}
于 2013-04-22T12:38:30.033 に答える