2013-05-04 3 views
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 таблицу для прослеживания

also this is my table for follow

MySQL таблицу сообщений

and this is my table for posts

+0

не должны ли быть кавычки '$ username' в 'follow.person_following = '$ username'' – asprin

+0

Откуда появляется' $ username' - вы его не использовали? – halfer

+0

Этот файл включен в сайт. Таким образом, имя пользователя уже установлено. –

ответ

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() для отладки цели, чтобы увидеть, если вы получаете любое сообщение об ошибке распечатаны

+0

все еще не работает ... –

+0

Любое сообщение об ошибке показано? – asprin

+0

ok Я что-то придумал –