1

私が達成しようとしているのは、セッションのユーザー名である $username の友人からの投稿でいっぱいのニュース フィードを埋めることです。

私が今抱えている問題は、ユーザーが誰もフォローしていないか、誰もフォローしていない (フォローテーブルにない) 場合、ニュースフィードに自分の投稿が表示されないことです。

他のすべては正常に機能しているようです。

ユーザーは自分の投稿とフォローしている人の投稿を見ることができます。ユーザーがフォローしている、またはフォローされている場合、ユーザーは自分の投稿を見ることができます。フォローしていない、またはフォローされていない場合、ユーザーは自分の投稿を表示できません。

SELECT  p.*
FROM posts p
JOIN follow f
ON p.by IN (f.person_being_followed, '$username')  
WHERE '{$username}' IN (f.person_following, p.by) 
ORDER BY p.id DESC

これは、この情報をエコーするページのコードでもあります

        <?

$get_posts = mysql_query("SELECT  p.*
FROM posts p
JOIN follow f
ON p.by IN (f.person_being_followed, '$username')  ### the ,$username' shows the logged users posts, but only if they are in the follow table ###
WHERE '{$username}' IN (f.person_following, p.by)  ## the p.by shows the person who posted who logged in, but only if they are in the follow table ##
ORDER BY p.id DESC") or die(mysql_error());

while ($post_row = mysql_fetch_assoc($get_posts)) {

    include './includes/newsfeed/postdetails.tpl';
    include './includes/newsfeed/likeinfo.tpl';
    include './includes/newsfeed/fandlname.tpl';
    include './includes/newsfeed/deletepostbutton.tpl';

?>


    <div style='display: inline-block;width: 560px;padding-top: 10px;padding-bottom: 10px; border-bottom: 1px solid rgba(0,0,0,0.1);'>
    <a style='float: left;' href='./profile.php?u=<?
    echo $post_by;
?>'><img src='' height='50px' width='50px'/></a>
    <div style='float: right; width: 500px;'>
    <p style='color: rgb(59, 152, 96);font-weight: bold; font-size: 13px;
line-height: 1.38;font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;'><a style='color: rgb(59, 152, 96);
font-weight: bold;
font-size: 12px;
line-height: 1.38;text-decoration: none;' href='./profile.php?u=<?
    echo $post_by;
?>'><?
    echo "$fnamepost  $lnamepost";
?></a></p>
    <p style='color: rgb(51, 51, 51);
font-size: 13px;
line-height: 1.38;
font-family: 'lucida grande',tahoma,verdana,arial,sans-serif;'><?
    echo $post_content;
?></p>

    <div style='margin-top: 5px;'><a href='./scripts/like.php?pid=<?
    echo $post_id;
?>' style='color:rgb(109, 180, 137);
font-size: 11px;line-height: 1.28;'><?
    echo "$likedornot ($countlikes)";
?></a><a href='#' class='comment_button' style='margin-left: 10px;color:rgb(109, 180, 137);
font-size: 11px;line-height: 1.28;'><?
    echo "Comment";
?></a><?
    echo $deletecodevariable;
?></div>

<?
    include './includes/newsfeed/comments.tpl';
    ?>
</div></div>
<?
}
?>

フォロー用のmysqlテーブル

また、これはフォローするための私のテーブルです

投稿用のmysqlテーブル

これは投稿用の私のテーブルです

4

1 に答える 1

1

交換

$get_posts = mysql_query("SELECT posts.*            
FROM posts
INNER JOIN follow            
ON posts.by=follow.person_being_followed          
WHERE follow.person_following = $username
ORDER BY posts.id DESC");

$get_posts = mysql_query("SELECT posts.*            
FROM posts
INNER JOIN follow            
ON posts.by=follow.person_being_followed          
WHERE follow.person_following = '$username'
ORDER BY posts.id DESC") or die(mysql_error());

デバッグ目的で使用mysql_error()して、エラーメッセージが出力されるかどうかを確認します

于 2013-05-04T11:50:28.943 に答える