【问题标题】:Running if statement based on the results of multiple selections根据多选结果运行if语句
【发布时间】:2013-06-21 08:52:09
【问题描述】:

这可能需要一些非常基本的东西,但我找不到以我希望它工作的方式执行此操作的答案。我拥有的是一个 mysql 文章表和一个收藏夹表,如果您喜欢一篇文章,则会记录信息。所以我需要从一个表中选择我喜欢的所有文章,然后从另一个表中选择所有文章并将它们全部显示为提要,我已经这样做了。我需要帮助的部分是说,如果我喜欢其中一个帖子,请不要显示喜欢按钮(或者,如果我还不喜欢它,请显示按钮)。谁能指出我正确的方向?这是我拥有的代码,但它只显示了我喜欢的最后一个:

<?php
$check_like_sql = "SELECT * FROM posts WHERE type = 'Like' && poster = '$yourid'";
$check_like_res = mysqli_query($con, $check_like_sql) or die (mysqli_error());
if(mysqli_affected_rows($con)>0){
    while($likes = mysqli_fetch_array($check_like_res)){
        $yourlike = $likes['media'];
    }
}
?>
<?php
$get_posts_sql = "SELECT posts.*, members.username, members.avatar, fans.connection FROM posts LEFT JOIN members ON members.id = posts.poster LEFT JOIN fans ON fans.fan = '$yourid' WHERE posts.poster = fans.connection ORDER BY date DESC";
$get_posts_res = mysqli_query($con, $get_posts_sql) or die (mysqli_error());
if(mysqli_affected_rows($con)>0){
    while($posts = mysqli_fetch_assoc($get_posts_res)){
        $postid = $posts['id'];
        etc
        etc


        if($yourlike == $postid){
            $likethis = "<a href=\"php/unlike.php?poster=$yourid&post=$postid\">Unlike</a> . ";
        }
        else if($posttype == "Like"){
            $likethis = "";
        }
        else{
            $likethis = "<a href=\"php/like.php?poster=$yourid&lat=$yourlat&lon=$yourlon&like=$postid&user=$postusername\">Like</a> . ";
        }

        $post .= "";
    }
}
?>

【问题讨论】:

  • 你试过了吗?
  • 能否将代码添加到问题中?
  • 请发布您的CREATE TABLE 声明以及您已经尝试过的内容。
  • 对不起,这里是用代码编辑
  • 如果我们有您的数据库布局,这仍然会容易得多。

标签: php mysql select social-media-like


【解决方案1】:

您可以从您的文章表离开外部连接到您的 like_articles 表。

select a.*, 
       case when la.liked_article_id is null then 'Not Liked Yet' else 'Already Liked' as LikedStatus 
from   articles a
left outer join liked_articles la
on     a.id = la.article_id
and    @userId = la.user_id;

这对于 MYSQL 可能在语法上不正确,但您明白了要点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-24
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多