Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Есть таблица messages для личных сообщений:
--
-- Структура таблицы `messages`
--
CREATE TABLE IF NOT EXISTS `messages` (
`mess_id` int(100) NOT NULL AUTO_INCREMENT,
`dir_id_sender` int(100) NOT NULL DEFAULT '1',
`dir_id_recept` int(100) NOT NULL DEFAULT '1',
`sender` int(100) NOT NULL,
`recept` int(100) NOT NULL,
`mess` varchar(10000) NOT NULL,
`mess_date` datetime NOT NULL,
`unread_only` int(1) NOT NULL DEFAULT '0',
`hidden_sender` varchar(1) NOT NULL DEFAULT 'n',
`hidden_recept` varchar(1) NOT NULL DEFAULT 'n',
PRIMARY KEY (`mess_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=721 ;
Где: dir_id_sender - ИД папки отправителя сообщения
dir_id_recept -ИД папки получателя
sender - ИД юзера отправителя
recept -ИД юзера получателя
например:
dir_id_sender = 1
dir_id_recept = 2
sender = 3
recept = 7
Есть исходная функция подсчета кол. контактов в папке:
// СОСЧИТАТЬ ВСЕ КОНТАКТЫ ПО ПАПКАМ
function cont_total($messdir){
global $sender, $query, $assoc;
$sql = "SELECT messages.*, users.id FROM messages
JOIN users ON messages.recept <> '$sender' AND messages.recept=users.id OR messages.sender <> '$sender' AND messages.sender=users.id
WHERE (sender='$sender' OR recept='$sender') AND dir_id_sender='$messdir' AND messages.hidden_sender <> 'y'";
$cont_total_query = $query($sql);
$cont_total = 0;
while($row = $assoc($cont_total_query)) {
$c[$row[id]]$c[$row[id]]+1);
if($c[$row[id]] == 1){
$messages_array[$cont_total] = Array('mess_id' => $row[mess_id]);
$cont_total++;
}
}
return $cont_total;
}
Где любое кол. строк с ИД юзеров 3 и 7 - идет подсчет за один контакт. Но возникла проблема, как правильно построить запрос, что бы данная функция возвращала результат при различных значениях ИД папок ($messdir - 1 и 2) для ИД юзера 3 - только по значению $messdir=1. И наоборот для юзера ИД=7 только при $messdir=2?
Неужели так все сложно я задумал, что нет ни одного предложения? За решение данной проблемы, готов отплатить по договоренности! Предложения по аске 220590594
Отредактированно multiton (22.09.2012 16:46:52)
Неактивен