|
|
|
|
|
для: Trianon
(09.01.2007 в 23:34)
| | Спасибо. Очень благодарен за оказанную помощь... | |
|
|
|
|
|
|
|
для: kis-kis
(09.01.2007 в 21:54)
| | Вероятно, можно вообще обойтись одним SELECTом:
SELECT l.user_id as fromid, l.for_user as toid,
f.uname as fromname,
t.uname as toname,
l.subject, t.email as toemail
FROM letters as l JOIN passport as f ON l.user_id = f.id
JOIN passport as t ON l.for_user = t.id
WHERE l.readmess='0' AND l.rep_send = '0' AND t.rep_mess='1'
|
тогда если и будет нагружать, то уж точно не запрос, а сама отправка писем. | |
|
|
|
|
|
|
|
для: Trianon
(09.01.2007 в 21:46)
| | Trianon - Вы гений!
Вы не перестаете меня удивлять...
Можно вопрос?
Откуда такие познания? ;-)
И еще - если пользователей будет около 1000 - это не сильно будет нагружать хостера? | |
|
|
|
|
|
|
|
для: kis-kis
(09.01.2007 в 21:41)
| |
$usr = $row['for_user'];
$rowcat = isset($cache[$usr]) ? $cache[$usr] :
($cache[$usr]=mysql_fetch_assoc(mysql_query(
"SELECT * FROM passport WHERE id = $usr")));
if($rowcat['rep_mess'] != '1')
continue;
$usr = $row['userid'];
$rowcat2 = isset($cache[$usr]) ? $cache[$usr] :
($cache[$usr]=mysql_fetch_assoc(mysql_query(
"SELECT * FROM passport WHERE id = $usr")));
|
| |
|
|
|
|
|
|
|
для: Trianon
(09.01.2007 в 21:36)
| | База:
CREATE TABLE `passport` (
`id` int(11) NOT NULL auto_increment,
`uname` text NOT NULL,
`email` text NOT NULL,
`pass` varchar(50) NOT NULL default '',
`level` tinyint(4) NOT NULL default '3',
`avatar` varchar(100) NOT NULL default '',
`subs` int(1) NOT NULL default '1',
`rep_mess` int(1) NOT NULL default '1',
`rep_job` int(1) NOT NULL default '1',
`rep_bazar` int(1) NOT NULL default '1',
`last_login` text NOT NULL,
`last_ip` text NOT NULL,
`bill_job` int(1) default '0',
`billexpdate` date NOT NULL default '0000-00-00',
`billcontname` text NOT NULL,
`billtel` text NOT NULL,
`vkey` varchar(30) NOT NULL default '',
`status` tinyint(1) default '0',
`regdate` date NOT NULL default '0000-00-00',
KEY `id` (`id`),
KEY `bill_job` (`bill_job`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 PACK_KEYS=0 AUTO_INCREMENT=26;
INSERT INTO `passport` VALUES (1, 'maXim', 'max@max.max', 'c8837b23ff8aaa8a2dde915473ce0991', 3, 'av-1.jpg', 0, 0, 1, 1, '09.01.2007 21:15:23', '127.0.0.1', 1, '2007-12-31', '', '', '', 1, '0000-00-00');
|
Чтобы отчеты отправлялись только тем, у кого в ячейке rep_mess стоит 1. Теперь понятно? | |
|
|
|
|
|
|
|
для: kis-kis
(09.01.2007 в 21:20)
| | А этого утверждения я не понял. | |
|
|
|
|
|
|
|
для: Trianon
(09.01.2007 в 19:10)
| | Спасибо.
А это?
>> И как можно сделать чтобы он выполнялся только для тех пользователей у которых rep_mess='1'? | |
|
|
|
|
|
|
|
для: kis-kis
(09.01.2007 в 18:19)
| |
<?
$cache= array();
// Отправляем пользователям отчеты о новых внутренних сообщениях
$query = "SELECT * FROM letters WHERE readmess = '0' and rep_send = '0'";
$result=mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
if (mysql_num_rows($result)!=0)
{
while($row = mysql_fetch_array($result))
{
$usr = $row['for_user'];
$rowcat = isset($cache[$usr]) ? $cache[$usr] :
($cache[$usr]=mysql_fetch_assoc(mysql_query(
"SELECT * FROM passport WHERE id = $usr")));
$usr = $row['userid'];
$rowcat2 = isset($cache[$usr]) ? $cache[$usr] :
($cache[$usr]=mysql_fetch_assoc(mysql_query(
"SELECT * FROM passport WHERE id = $usr")));
$send_data = date("Y.m.d H:i:s");
// etc...
|
| |
|
|
|
|
|
|
|
для: kis-kis
(08.01.2007 в 17:32)
| | Trianon, Вы не поможете? | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2007 в 16:54)
| | Можно полученный код?
>> И как можно сделать чтобы он выполнялся только для тех пользователей у которых rep_mess='1'?
А с условием не поможете? | |
|
|
|
|