|
From: Lo?c C. <lo...@us...> - 2001-04-23 18:21:17
|
Update of /cvsroot/phpmychat/phpMyChat-0.15/chat
In directory usw-pr-cvs1:/tmp/cvs-serv17108/chat
Modified Files:
users_low.php3 users.php3
Log Message:
Optimized a little bit
Index: users_low.php3
===================================================================
RCS file: /cvsroot/phpmychat/phpMyChat-0.15/chat/users_low.php3,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** users_low.php3 2001/04/22 18:43:55 1.14
--- users_low.php3 2001/04/23 18:21:14 1.15
***************
*** 150,159 ****
/**
* Get the users'list
*/
if (C_DB_TYPE == 'mysql')
{
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg LEFT JOIN ' . C_REG_TBL . ' reg ON usr.username = reg.username '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'GROUP BY room, username';
}
--- 150,166 ----
/**
* Get the users'list
+ *
+ * Check all the public rooms and possibly the private room the user is
+ * chatting into. The query depends on the database software because of
+ * the left outer join it requires.
*/
+ $roomsToCheck = ($dbSessionVars['roomType'] == 0)
+ ? 'usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)'
+ : 'usr.room = msg.room AND msg.type = 1';
if (C_DB_TYPE == 'mysql')
{
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg LEFT JOIN ' . C_REG_TBL . ' reg ON usr.username = reg.username '
! . 'WHERE ' . $roomsToCheck . ' '
. 'GROUP BY room, username';
}
***************
*** 163,167 ****
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
. 'WHERE usr.username = reg.username (+) '
! . 'AND (usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)) '
. 'GROUP BY room, username';
}
--- 170,174 ----
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
. 'WHERE usr.username = reg.username (+) '
! . 'AND (' . $roomsToCheck . ') '
. 'GROUP BY room, username';
}
***************
*** 170,178 ****
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'UNION '
. 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.username NOT IN (SELECT reg.username FROM ' . C_REG_TBL . ' reg) AND (usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)) '
. 'GROUP BY room, username';
}
--- 177,185 ----
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
! . 'WHERE ' . $roomsToCheck . ' '
. 'UNION '
. 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.username NOT IN (SELECT reg.username FROM ' . C_REG_TBL . ' reg) AND (' . $roomsToCheck . ') '
. 'GROUP BY room, username';
}
***************
*** 181,185 ****
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'GROUP BY room, username';
}
--- 188,192 ----
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE ' . $roomsToCheck . ' '
. 'GROUP BY room, username';
}
Index: users.php3
===================================================================
RCS file: /cvsroot/phpmychat/phpMyChat-0.15/chat/users.php3,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** users.php3 2001/04/22 18:43:55 1.19
--- users.php3 2001/04/23 18:21:14 1.20
***************
*** 149,158 ****
/**
* Get the users'list
*/
if (C_DB_TYPE == 'mysql')
{
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg LEFT JOIN ' . C_REG_TBL . ' reg ON usr.username = reg.username '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'GROUP BY room, username';
}
--- 149,165 ----
/**
* Get the users'list
+ *
+ * Check all the public rooms and possibly the private room the user is
+ * chatting into. The query depends on the database software because of
+ * the left outer join it requires.
*/
+ $roomsToCheck = ($dbSessionVars['roomType'] == 0)
+ ? 'usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)'
+ : 'usr.room = msg.room AND msg.type = 1';
if (C_DB_TYPE == 'mysql')
{
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg LEFT JOIN ' . C_REG_TBL . ' reg ON usr.username = reg.username '
! . 'WHERE ' . $roomsToCheck . ' '
. 'GROUP BY room, username';
}
***************
*** 162,166 ****
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
. 'WHERE usr.username = reg.username (+) '
! . 'AND (usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)) '
. 'GROUP BY room, username';
}
--- 169,173 ----
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
. 'WHERE usr.username = reg.username (+) '
! . 'AND (' . $roomsToCheck . ') '
. 'GROUP BY room, username';
}
***************
*** 169,177 ****
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'UNION '
. 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.username NOT IN (SELECT reg.username FROM ' . C_REG_TBL . ' reg) AND (usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1)) '
. 'GROUP BY room, username';
}
--- 176,184 ----
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, reg.gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg, ' . C_REG_TBL . ' reg '
! . 'WHERE ' . $roomsToCheck . ' '
. 'UNION '
. 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.username NOT IN (SELECT reg.username FROM ' . C_REG_TBL . ' reg) AND (' . $roomsToCheck . ') '
. 'GROUP BY room, username';
}
***************
*** 180,184 ****
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE usr.room = \'' . $slashedCurrentRoomName . '\' OR (usr.room = msg.room AND msg.type = 1) '
. 'GROUP BY room, username';
}
--- 187,191 ----
$usersQuery = 'SELECT usr.room, usr.username, usr.latin1, usr.status, NULL AS gender '
. 'FROM ' . C_USR_TBL . ' usr, ' . C_MSG_TBL . ' msg '
! . 'WHERE ' . $roomsToCheck . ' '
. 'GROUP BY room, username';
}
|