From 3d2a45ab049606701172c11552aa0c1006d2fbf1 Mon Sep 17 00:00:00 2001 From: David M Date: Fri, 5 May 2006 22:06:17 +0000 Subject: I hope nothing broke! - Added a query builder, it is currently only used for complex queries that involve a FROM clause with two tables and a left join - Changed some function calls in the DBAL - Made the viewtopic queries nicer git-svn-id: file:///svn/phpbb/trunk@5885 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/ucp.php | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'phpBB/ucp.php') diff --git a/phpBB/ucp.php b/phpBB/ucp.php index 95e2d55b78..36b7afadfc 100755 --- a/phpBB/ucp.php +++ b/phpBB/ucp.php @@ -244,13 +244,28 @@ if (!$user->data['is_registered']) // Output listing of friends online $update_time = $config['load_online_time'] * 60; -$sql = 'SELECT DISTINCT u.user_id, u.username, u.user_allow_viewonline, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline - FROM (' . USERS_TABLE . ' u, ' . ZEBRA_TABLE . ' z) - LEFT JOIN ' . SESSIONS_TABLE . ' s ON (s.session_user_id = z.zebra_id) - WHERE z.user_id = ' . $user->data['user_id'] . ' - AND z.friend = 1 - AND u.user_id = z.zebra_id - GROUP BY z.zebra_id, u.user_id, u.username, u.user_allow_viewonline'; +$sql = $db->sql_build_query('SELECT_DISTINCT', array( + 'SELECT' => 'u.user_id, u.username, u.user_allow_viewonline, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline', + + 'FROM' => array( + USERS_TABLE => 'u', + ZEBRA_TABLE => 'z' + ), + + 'LEFT_JOIN' => array( + array( + 'FROM' => array(SESSIONS_TABLE => 's'), + 'ON' => 's.session_user_id = z.zebra_id' + ) + ), + + 'WHERE' => 'z.user_id = ' . $user->data['user_id'] . ' + AND z.friend = 1 + AND u.user_id = z.zebra_id', + + 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username, u.user_allow_viewonline' +)); + $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) -- cgit v1.2.1