Привет всем, может найдутся эксперты которые подскажут и помогут как что к чему, пытался объеденить вывод данных из двух таблиц на одной странице, чтобы все вместе выводилось, так то вроде все выводит, но если поставить лимит 1 на вывод сколько нужно выводить будет выводить 2, если выставить 2 будет 4 выводить, как его нормально сделать? PHP: $res = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS tb1.user_id, tb1.group_id, tb2.user_id FROM `groups_users` tb1,`groups_wall` tb2 WHERE tb1.user_id = '".$user_id."' AND tb1.group_id = tb2.wall_id"); $all = $res->num_rows; $cp = ceil($all/$system['page']); $p = (isset($_GET['page']) and is_numeric($_GET['page']) and $_GET['page']>1 and $_GET['page']<=$cp) ? $_GET['page'] : 1; $start = $p*$system['page']-$system['page']; $res = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS 'groups' as 'request_type', tb1.user_id, tb1.group_id, tb2.id, tb2.user_id, tb2.wall_id, tb2.from, tb2.repost_id, tb2.text, tb2.photo, tb2.video, tb2.audio, tb2.type, tb2.time, tb2.crepost, tb2.urepost FROM `groups_users` tb1,`groups_wall` tb2 WHERE tb1.user_id = '".$user_id."' AND tb1.group_id = tb2.wall_id ORDER by tb2.time DESC LIMIT $start, ".$system['page'].""); if ($res->num_rows > 0 ) { while ($news_groups_res = $res->fetch_array()){ $ord++; $common_news[ $news_groups_res['time'] - $ord] = $news_groups_res; } } $res = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS DISTINCT tb1.friend_id, tb2.user_id FROM `friends` tb1,`wall` tb2 WHERE (tb1.user_id = '".$user_id."' OR tb2.user_id = '".$user_id."' ) AND tb1.friend_id = tb2.user_id "); $all = $res->num_rows; if ($all > 0){ $cp = ceil($all/$system['page']); $p = (isset($_GET['page']) and is_numeric($_GET['page']) and $_GET['page']>1 and $_GET['page']<=$cp) ? $_GET['page'] : 1; $start = $p*$system['page']-$system['page']; $res = $mysqli->query(" SELECT SQL_CALC_FOUND_ROWS DISTINCT 'friends' as 'request_type', tb1.friend_id, tb1.status, tb2.id, tb2.user_id, tb2.wall_id, tb2.repost_id, tb2.text, tb2.photo, tb2.video, tb2.audio, tb2.type, tb2.time FROM `friends` tb1, `wall` tb2 WHERE ( ( (tb1.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1') OR ( (tb2.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1') ) AND (tb2.wall_id = tb2.user_id) ORDER by tb2.time DESC LIMIT $start, ".$system['page'].""); while ($news_friends_arr = $res->fetch_array()){ $ord++; $common_news[ $news_friends_arr['time'] - $ord] = $news_friends_arr; } } echo '<div id="load_content">'; if (isset($common_news)) { krsort($common_news, SORT_NUMERIC); foreach($common_news as $news) { if ($news['request_type']=='friends') { echo wall_post($news,1,0,1,1,0); } else if ($news['request_type']=='groups') { echo group_wall_post($news,1,0,1,1,0); } } echo '</div>'; nav($p,$cp,'/modules/feed/nav/nav.php?id='.$id.''); }else{ echo '<div class="no_content border-radius"><span class="material-icons">rss_feed</span> '.$lang['no_news'].'</div>'; }
Читай доку, используй fetch_assoc() --- Добавлено --- Это Шо-то древнее. Сейчас используют отдельный запрос с COUNT().
Спрошу по другому, наверное я не понятно объяснил в чем проблема, должно выводить LIMIT 1, одну запись и бд, но запроса два и вывода два, и там и там прописано LIMIT 1, мне нужно чтоб выводило 1, а выводит 2)), собственно код PHP: $all_groups = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS tb1.user_id, tb1.group_id, tb2.user_id FROM `groups_users` tb1,`groups_wall` tb2 WHERE tb1.user_id = '".$user_id."' AND tb1.group_id = tb2.wall_id")->num_rows; $all_users = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS DISTINCT 'friends' as 'request_type', tb1.friend_id, tb1.status, tb2.id, tb2.user_id, tb2.wall_id FROM `friends` tb1, `wall` tb2 WHERE (( (tb1.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1') OR ( (tb2.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1')) AND (tb2.wall_id = tb2.user_id)")->num_rows; $cp = ceil($all_users+$all_groups/$system['page']); $p = (isset($_GET['page']) and is_numeric($_GET['page']) and $_GET['page']>1 and $_GET['page']<=$cp) ? $_GET['page'] : 1; $start = $p*$system['page']-$system['page']; $res = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS 'groups' as 'request_type', tb1.user_id, tb1.group_id, tb2.id, tb2.user_id, tb2.wall_id, tb2.from, tb2.repost_id, tb2.text, tb2.photo, tb2.video, tb2.audio, tb2.type, tb2.time, tb2.crepost, tb2.urepost FROM `groups_users` tb1,`groups_wall` tb2 WHERE tb1.user_id = '".$user_id."' AND tb1.group_id = tb2.wall_id ORDER by tb2.time DESC LIMIT $start, ".$system['page'].""); while ($news_groups_res = $res->fetch_array()){ $common_news[ $news_groups_res['time'] - $ord] = $news_groups_res; } $res = $mysqli->query(" SELECT SQL_CALC_FOUND_ROWS DISTINCT 'friends' as 'request_type', tb1.friend_id, tb1.status, tb2.id, tb2.user_id, tb2.wall_id, tb2.repost_id, tb2.text, tb2.photo, tb2.video, tb2.audio, tb2.type, tb2.time FROM `friends` tb1, `wall` tb2 WHERE ( ( (tb1.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1') OR ( (tb2.user_id = '".$user_id."') AND (tb1.friend_id = tb2.user_id) AND tb1.status = '1') ) AND (tb2.wall_id = tb2.user_id) ORDER by tb2.time DESC LIMIT $start, ".$system['page'].""); while ($news_friends_arr = $res->fetch_array()){ $common_news[ $news_friends_arr['time'] - $ord] = $news_friends_arr; } echo '<div id="load_content">'; if (isset($common_news)) { krsort($common_news, SORT_NUMERIC); foreach($common_news as $news) { if ($news['request_type']=='friends') { echo wall_post($news,1,0,1,1,0); } else if ($news['request_type']=='groups') { echo group_wall_post($news,1,0,1,1,0); } } echo '</div>'; nav($p,$cp,'/modules/feed/nav/nav.php?id='.$id.''); }else{ echo '<div class="no_content border-radius"><span class="material-icons">rss_feed</span> '.$lang['no_news'].'</div>'; }