IF声明不起作用

时间:2014-02-14 08:36:54

标签: php

我正试图从'posts_fav'中抓取最喜欢的帖子,其中帖子ID是行ID。然后我希望它如果查询上的用户ID等于成员ID它将显示'是'否则它将显示'否'。

Originial:

foreach ($usersfav as $rowfav) {
    if ($rowfav["user_id"] == $member["id"]) 
    {
        echo 'yes'; 
    }
    else
    {
        echo 'no';
    }
}

我的一次尝试: 这会将所有内容更改为else函数。跳过检查if是否需要有一种方法可以获得$ rowfav [“”]而无需

foreach ($usersfav as $rowfav) {
    $sqlfav = "SELECT * FROM posts_fav WHERE post_id = '".$row["id"]."'";
    $stmfav = $dbh->prepare($sqlfav);
    $stmfav->execute(); 
    $usersfav = $stmfav->fetchAll();

    if ($rowfav["user_id"] == $member["id"]) 
    {
        echo 'yes'; 
    }
    else
    {
        echo 'no';
    }
}

更新 所以我希望rowfav [“user_id”]和成员[“id”]匹配的帖子与'Yes'匹配,而其他帖子没有任何行可以找到'no'

完整代码:

$sql = "
SELECT *,
(SELECT profilepic FROM users WHERE users.username = users_profiles_comments.author) AS profilepic
FROM users_profiles_comments WHERE postid = '". $row["username"] ."' ORDER BY `id` DESC";


$stm = $dbh->prepare($sql);
$stm->execute();
$users = $stm->fetchAll();



foreach ($users as $row) {
echo ' <div class="row user-row">
            <div class="col-xs-3 col-sm-2 col-md-2 col-lg-2">
                <img class="img-thumbnail"
                     src="'.$row['profilepic'].'" width="150px;"
                     alt="User Pic">
            </div>
            <div class="col-xs-10 col-sm-10 col-md-10 col-lg-10">
               <div class="panel panel-default">
                <div class="panel-heading"><b>'. $row["author"] .'</b> - <small>'. $row["date"] .'</small>
                ';
                if ($row["author"]) {
                echo '<p style="float:right;">';
$sqlfav = "SELECT * FROM posts_fav WHERE post_id = '".$row["id"]."'";
$stmfav = $dbh->prepare($sqlfav);
$stmfav->execute(); 
$usersfav = $stmfav->fetchAll();

foreach ($usersfav as $rowfav) {
if (strcmp($rowfav["user_id"], $member["id"]) == 0)
        {
            echo '
                Yes
                '; 
        }
        else { 
echo 'No';
            } }

2 个答案:

答案 0 :(得分:1)

if (count($usersfav)!=0)
{
    foreach ($usersfav as $rowfav) 
    {
        if (strcmp($rowfav["user_id"], $member["id"]) == 0)
        {
          echo 'Yes'; 
        }
    }
}
else 
{ 
    echo 'No';
}

答案 1 :(得分:0)

如果我理解正确,你想获得用户最喜欢的帖子,然后获取他或不是他的帖子的信息。

作为建议,您可以对查询进行检查,这样您的结果就会显示您想要的标记。

$sql = "SELECT posts_fav.*, posts.*, IF(posts.user_id = ?, 1, 0) as owns_post FROM posts_fav LEFT JOIN posts ON posts_fav.post_id = posts.id WHERE posts_fav.member_id = ?";
$query = $dbh->prepare($sql);
$query->bind_param("posts_member_id", $member["id"]);
$query->bind_param("member_id", $member["id"]);
$query->execute(); 
$rows = $query->fetchAll();

foreach($rows as $row) {
    if($row["owns_post"]) {
       echo "User owns the post";
    } else {
       echo "User does not own the post";
    }
}

未经测试,无法保证它甚至可以正常使用。 : - )