2013-04-10 1 views
0

Как я могу сделать следующую систему Twitter, где, если вы будете следовать за кем-то, вы получите их твиты. У меня есть таблица базы данных, называемая «пользователи», «followings» и «posts». Таблица пользователей содержит пользователей, которые находятся на моем сайте. Ниже перечислены подписчики лиц, эта таблица настроена следующим образом: «id, user_one, user_two». Стол сообщений содержит все твиты или сообщения, которые имеет уникальный пользователь.Как сделать Twitter-подобную следующую систему

У меня есть страница профиля, настроенная для каждого пользователя, с помощью следующей кнопки. А также у меня есть лента новостей для пользователя, но в этом ленте новостей мне нужно, чтобы она показывала сообщения от пользователей, которых следил вошедший в систему пользователь. Так или иначе, чтобы я мог заставить пользователя следовать за кем-то и получать сообщения от этого пользователя в своем ленте новостей.

Теперь я did some research: их система, похоже, не сработает. Я постоянно получаю эту ошибку:

Warning: implode() [function.implode]: Invalid arguments passed in function.php on line 12

SELECT 
    user_id, 
    body, 
    stamp 
FROM posts 
WHERE user_id in() 
ORDER BY stamp DESC 

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in function.php.

Эта линия здесь было предположить, чтобы помочь сделать это где, когда вы будете следовать этим человеком вы будете получать там твиты и прочее

function show_posts($userid,$limit=0){ 
$posts = array(); 

$user_string = implode(',', $userid); 
$extra = " and id in ($user_string)"; 

if ($limit > 0){ 
    $extra = "limit $limit"; 
}else{ 
    $extra = '';  
} 

$sql = "select user_id,body, stamp from posts 
    where user_id in ($user_string) 
    order by stamp desc $extra"; 
echo $sql; 
$result = mysql_query($sql); 

while($data = mysql_fetch_object($result)){ 
    $posts[] = array( 'stamp' => $data->stamp, 
         'userid' => $data->user_id, 
         'body' => $data->body 
       ); 
} 
return $posts; 

}

Я считаю, что этот фрагмент кода, который должен показывать сообщения от других пользователей, вызывает эту проблему, но я не знаю Не знаю почему.

+0

Похоже, что ваш sql недопустим, и это приводит к недопустимому массиву, поэтому implode не работает. После '$ fsql = ..' типа' die ($ fsql); 'и сообщите нам, что ваш оператор sql .. – asifrc

+0

У меня есть ссылка на него здесь: http://www.ibm.com/developerworks/opensource/ библиотека/os-php-twitter-interface/index.html? ca = dgr-lnxw9d & S_TACT = 105AGX59 & S_CMP = grsitelnxw9d – artandmanga

+0

@artandmanga mattedgod - это просто тролль. Он знает ибм, и так все остальные, отсюда и его сарказм .. – asifrc

ответ

0

Используйте соединение. Например:

select user_id, text from posts 
    inner join followings on posts.user_id = followings.followed_id 
    where followings.follower_id = :user_id; 

Если я могу рекомендовать прекратить использование mysql_ функций; they are deprecated и не должны использоваться в новых приложениях. Вместо этого я бы рекомендовал использовать PDO.

+0

Wow cool thanks ima попробуйте это и вернитесь к вам! @icktoofay – artandmanga

Смежные вопросы