как сделать запрос из более 2 таблиц - PullRequest
0 голосов
/ 05 июля 2011

я пытался сделать это:

    $sql = "SELECT phpbb_users.user_id, phpbb_users.username, phpbb_users.user_colour, topic_poster, phpbb_topics.forum_id, phpbb_forums.forum_price
FROM phpbb_topics LEFT JOIN phpbb_forums ON phpbb_topics.forum_id = phpbb_forums.forum_id
 LEFT JOIN phpbb_users ON phpbb_topics.topic_poster = phpbb_users.user_id WHERE phpbb_users.group_id = '55222'
 OR phpbb_users.group_id = '55229'
 OR phpbb_users.group_id = '55174'
 GROUP BY phpbb_users.user_id ORDER BY phpbb_forums.forum_price DESC";
    $result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{

    $template->assign_block_vars('earn', array(
        'USER_ID'                   => $row['user_id'],
        'USERNAME'                  => $row['username'],
        'USER_COLOR'                => $row['user_colour'],
        'U_USER'                    => append_sid($phpbb_root_path . "memberlist." . $phpEx . "?mode=viewprofile&u=" . $row['user_id']),
        'TOTAL_EARN'                => $price,
        'TOTAL_UPLOADS'             => $total_price_singels+$total_price_albums,
        'TOTAL_UPLOADS_LASTMONTH'   => $total_upload_lastmonth,
        'TOTAL_UPLOADS_MONTH'       => $total_upload_month,
    ));
}

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

Еще раз спасибо.

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

Если я вас правильно понимаю, вы хотите подсчитать сумму для каждого пользователя, попробуйте что-то вроде этого: SELECT sum(phpbb_forums.price) as total_sum, ...

0 голосов
/ 05 июля 2011

если я прав, вам не нужно это в последний раз, после $total_upload_month

$sql = "SELECT phpbb_users.user_id, phpbb_users.username, phpbb_users.user_colour, topic_poster, phpbb_topics.forum_id, phpbb_forums.forum_priceFROM phpbb_topics LEFT JOIN phpbb_forums ON phpbb_topics.forum_id = phpbb_forums.forum_id LEFT JOIN phpbb_users ON phpbb_topics.topic_poster = phpbb_users.user_id WHERE phpbb_users.group_id = '55222' OR phpbb_users.group_id = '55229' OR phpbb_users.group_id = '55174' GROUP BY phpbb_users.user_id ORDER BY phpbb_forums.forum_price DESC";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)){
 $template->assign_block_vars('earn', array(        
'USER_ID'                   => $row['user_id'],        
'USERNAME'                  => $row['username'],        
'USER_COLOR'                => $row['user_colour'],        
'U_USER'                    => append_sid($phpbb_root_path . "memberlist." . $phpEx . "?mode=viewprofile&u=" . $row['user_id']),        
'TOTAL_EARN'                => $price,        
'TOTAL_UPLOADS'             => $total_price_singels+$total_price_albums,        
'TOTAL_UPLOADS_LASTMONTH'   => $total_upload_lastmonth,        
'TOTAL_UPLOADS_MONTH'       => $total_upload_month    
));
}
...