Выборка из базы личных сообщений.

С.

Продвинутый новичок
Напиши сначала нужный тебе SELECT... в обычном виде. А потом раздербань его по $param, как требует твой фреймворк.
 

Vano

Новичок
SELECT T.* FROM (SELECT * FROM `message` WHERE message_type = 0 AND to_member_id_common = $_SESSION['member_id'] ORDER BY message_id DESC) AS T GROUP BY T.message_parent_id;
Ану попробуй такой запрос), подправь чтобы $_SESSION['member_id'] была переменной
 

Jigan2

Новичок
SELECT T.* FROM (SELECT * FROM `message` WHERE message_type = 0 AND to_member_id_common = $_SESSION['member_id'] ORDER BY message_id DESC) AS T GROUP BY T.message_parent_id;
Ану попробуй такой запрос), подправь чтобы $_SESSION['member_id'] была переменной
А как мне в таком виде это преподать, просто по другому ядро движка ошибку выдает.
Код:
    public function listMessage($condition,$page='') {
        $condition_str = $this->getCondition($condition);
        $param    = array();
        $param['table']        = 'message';
        $param['where']        = $condition_str;
        $message_list        = Db::select($param,$page);
        return $message_list;
    }
 

Vano

Новичок
Выдает вроде то что нужно.
Хорошо, а теперь подумай как, ты такой запрос запихнешь в свой фреймворк, подумай много ли запросов таких сможешь сам создать( а они тебе понадобяться ) И еще это они еще без пагинации(но то мелочь). Если всё ок, ищи в фреймворке как как отправить пользовательский запрос и вставляй этот бред). Если не всё ок, перепиши свое задание и создай нормальную/нормальные таблицы чтобы можно было легко с ними работать.
 

Jigan2

Новичок
Хорошо, а теперь подумай как, ты такой запрос запихнешь в свой фреймворк, подумай много ли запросов таких сможешь сам создать( а они тебе понадобяться ) И еще это они еще без пагинации(но то мелочь). Если всё ок, ищи в фреймворке как как отправить пользовательский запрос и вставляй этот бред). Если не всё ок, перепиши свое задание и создай нормальную/нормальные таблицы чтобы можно было легко с ними работать.
Ага. Обрадовал!) Сейчас попробую. Благодарю за помощь.
 

Vano

Новичок
Ага. Обрадовал!) Сейчас попробую. Благодарю за помощь.
Кароче) я намекал на то чтобы ты переписал по новой базу данных, ну или отказался бы от того что во входящих тебе выводит последнее сообщение-ответ вместо самого сообщения(корневого)
 

Jigan2

Новичок
Кароче) я намекал на то чтобы ты переписал по новой базу данных, ну или отказался бы от того что во входящих тебе выводит последнее сообщение-ответ вместо самого сообщения(корневого)
Это дофига делов переписывать так как с ней связано много. Если хочешь можешь посмотреть сайт http://kadamas.ru/. А если выводить корневое то тогда не будет показано что оно не прочитано.
 

Vano

Новичок
Это дофига делов переписывать так как с ней связано много. Если хочешь можешь посмотреть сайт http://kadamas.ru/. А если выводить корневое то тогда не будет показано что оно не прочитано.
В общем столкнешся с еще одной проблемой в сообщениях, не пытайся её решить - перепиши БД
 

Jigan2

Новичок
В общем столкнешся с еще одной проблемой в сообщениях, не пытайся её решить - перепиши БД
А что так не проканает?

Код:
class messageModel extends Model{
    public function __construct(){
        parent::__construct('message');
    }
    public function listMessage($condition,$page='') {
        $condition_str = $this->getCondition($condition);
        $param    = array();
        $param['table']        = 'message';
        $param['where']        = $condition_str;
        $message_list        = Db::select($param,$page);
        return $message_list;
    }
    public function listMessageArray($condition, $page='', $field='*', $order = 'message_parent_id desc') {
        return $this->table('message')->field($field)->where($condition)->group(message_parent_id)->order($order)->page($page)->select();
    }
}
Код:
public function messageOp() {
        Language::read('member_home_message');
        $model_message    = Model('message');
        $page    = new Page();
        $page->setEachNum(10);
        $page->setStyle('admin');
        $message_list_array    = $model_message->listMessage(array('message_type'=>'0','to_member_id_common'=>$_SESSION['member_id'],'no_message_state'=>'2'),$page);
   
        if(!empty($message_list_array)){
        $message_parent_id = array();
        foreach($message_list_array as $key => $val){
        $message_time[$val['message_parent_id']] = $val['message_time'];
        $message_parent_id[] = $val['message_parent_id'];
        }
        $message_time[] = max($message_time);
        $message_time = array_unique($message_time);
        $message_parent_id = array_unique($message_parent_id);
   
        $condition = array();
        $condition['message_parent_id'] = array('in', $message_parent_id);
        $condition['to_member_id'] = $_SESSION['member_id'];
        $condition['message_time'] = array('in', $message_time);
   
        $message_array    = $model_message->listMessageArray($condition,$page);
        }
        Tpl::output('message_array',$message_array);
        Tpl::showpage('message_box');
    }
 
Сверху