2013-06-24 87 views
0

这可能需要一些非常基本的东西,但我无法按照我希望的方式找到答案。我拥有的是一张mysql表格和一张收藏夹列表,如果你喜欢一篇文章,信息会被记录下来。因此,我需要从一张表中选择我喜欢的所有文章,然后选择所有来自另一张表的文章,并将它们全部显示为Feed,我已经完成。我需要帮助的部分是说,如果我喜欢其中一个帖子,不要显示类似按钮(或者,如果我还没有喜欢它,请显示按钮)。任何人都可以请用正确的方向指向我吗?这是我的代码,但它只显示最后一个我喜欢:根据多次选择的结果运行if语句

<?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 .= ""; 
    } 
} 
?> 
+1

你尝试过什么吗? – user20232359723568423357842364

+2

您可以将代码添加到问题中吗? – andrewsi

+0

请发布您的'CREATE TABLE'语句以及您已经尝试过的内容。 –

回答

1

您可以将文章表中的外部连接留给您的likes_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,这可能在语法上不正确,但您已获得要点。