| Kopusha |
|
|---|---|
|
для каждого конкретного пользователя? для юзера 1 одни списки для юзера 2 (у него другой список друзей) другие и тд и это выборка первых 30 записей, после почти сразу +30 инфинитскроллом и так далее Added 1 minute later: пробую так
$db->exec("
CREATE TEMPORARY TABLE temp_friends (
friend_id INT PRIMARY KEY
) ENGINE=MEMORY;
");
if (!empty($friends_ids)) {
$placeholders = implode(',', array_fill(0, count($friends_ids), '?'));
$stmt = $db->prepare("INSERT INTO temp_friends (friend_id) VALUES ($placeholders)");
$stmt->execute($friends_ids);
}
// Запрос с временной таблицей
$totalitems = $db->query("SELECT COUNT(*)
FROM $db_stories AS f
LEFT JOIN $db_users AS u ON u.user_id=f.item_userid
LEFT JOIN temp_friends tf ON tf.friend_id = f.item_userid
$join_condition
" . $where . "
$where_condition
$where_friends
")->fetchColumn();
$db->exec("DROP TEMPORARY TABLE IF EXISTS temp_friends;");
|