[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: inner join
Страницы: 1, 2
Tecvid


вот вариант с циклом который хочу переделать в вариант без цикла:



$user_id = $_GET['user'];
$this_user_id = $_SESSION['user_id'];

$sql = "SELECT * FROM posts WHERE for_user_id=".$user_id;
$posts = mysqli_query($sql);

foreach ($posts as $post) {
echo $post['post_text'];

$sql = "SELECT * FROM likes WHERE for_post_id=".$post['post_id'];
$query = mysqli_query($sql);
$num = mysqli_num_rows($query);

echo $num." users like this";

foreach ($query as $like) {
if ($like['from_user_id'] == $this_user_id') $liked_by_this = true;
}

if ($liked_by_this) echo "You like it";
}

kaww
Цитата (Tecvid @ 29.03.2015 - 07:22)
вот вариант с циклом который хочу переделать в вариант без цикла

ок, тогда как-то так
select posts.*, if(likes.from_user_id, count(*), 0) as numberOfLikes, sum(if(likes.from_user_id = '$this_user_id',1,0)) > 0 as iLikeIt 
from posts
left join likes on likes.for_post_id = posts.post_id
where posts.for_user_id = '$user_id'
group by posts.post_id
Tecvid
помогло, наконец-то, спасибо всем кто старался помочь smile.gif
Tecvid
а вот допустим есть ещё одна таблица, и оттуда нажо получить только количество строк, его можно как-то добавить в этот запрос через каунт?
kaww
Tecvid
откуда оттуда? кличество каких строк?
З.Ы. запрос следует исправить. Заменить if(likes.from_user_id, count(*), 0) as numberOfLikes на count(likes.from_user_id) as numberOfLikes
Tecvid
ну например нужно получить количество строк где another_table.for_post_id = posts.post_id, его также приписываем к этому запросу? или как-то по-другому?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.