2013-06-24 3 views
0

이 될 것입니다.이 작업은 매우 기본적인 작업이지만 필자는 원하는 방식으로이 작업을 수행 할 수 없습니다. 내가 가지고있는 것은 기사의 mysql 테이블과 즐겨 찾기 테이블이다. 여러분이 기사를 좋아한다면 정보가 기록된다. 그래서 나는 한 테이블에서 모든 기사를 선택한 다음 다른 기사의 모든 기사를 선택하고 그 기사를 모두 내가 한 피드로 표시해야합니다. 내가 도움이 필요한 부분은, 만약 내가 게시물 중 하나를 좋아한다면, 같은 버튼을 표시하지 말라는 것이다 (또는 내가 아직 좋아하지 않는다면, 버튼을 보여준다). 아무도 이것을 올바른 방향으로 가르쳐 주시겠습니까? 내가 가지고있는 코드는 다음과 같습니다. 내가 좋아하는 코드 만 보여줍니다.여러 선택 결과를 기반으로 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

기사 테이블에서 favorite_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에는 맞지 않지만 사용자는 요점을 얻습니다.

관련 문제