Лента новостей, как вконтакте.
Цель: Показывать (переключать) новости либо тех пользователей на которых подписан либо показывать все методом переключения . Как правильно это сделать.
в БД есть таблицы :
Feeds id | entity_id (автор) | title | content | likes | comments и т.д
subscribersid_user | id_subscription
Usersuser_id | name | и т.д
function add_subscriber($userid, $type, $typeId)
{
if (!subscriber_exists($userid, $type, $typeId)) {
forget_cache("subscribers-" . $type . '-' . $typeId);
db()->query("INSERT INTO `subscribers`(user_id,type,type_id)VALUES('{$userid}','{$type}','{$typeId}')");
return true;
}
return false;
}
function get_subscribers($type, $typeId)
{
$cacheName = "subscribers-" . $type . '-' . $typeId;
if (cache_exists($cacheName)) {
return get_cache($cacheName);
} else {
$result = array();
$query = db()->query("SELECT user_id FROM `subscribers` WHERE `type_id`='{$typeId}' AND `type`='{$type}'");
if ($query and $query->num_rows > 0) {
while ($fetch = $query->fetch_assoc()) {
$result[] = $fetch['user_id'];
}
}
set_cacheForever($cacheName, $result);
return $result;
}
}
нашел похожий запрос но другого двига
AND (
`user_id` IN (SELECT `following_id` FROM " . T_FOLLOWERS . " WHERE `follower_id` = {$logged_user_id} AND `active` = '1')
OR `recipient_id` IN (SELECT `following_id` FROM " . T_FOLLOWERS . " WHERE `follower_id` = {$logged_user_id} AND `active` = '1' )
есть идеи???