private function &new_find_messages($last_read_message_id) { $id_group = $this->id_chatroom; $type = $this->type; $user_id = $this->user_id; $db =& parent::getConnection(); if (AMA_DB::isError($db)) { return $db; } if ($last_read_message_id == 0) { $message_id_sql = ''; } else { $message_id_sql = ' AND id_messaggio > ' . $last_read_message_id; } if ($type == ADA_MSG_CHAT) { $sql = "SELECT U.nome, M.id_messaggio, M.data_ora, M.tipo, M.testo\n FROM (SELECT id_messaggio, data_ora, tipo, id_mittente, testo FROM messaggi\n WHERE id_group={$id_group} {$message_id_sql} AND tipo='{$type}') AS M\n LEFT JOIN utente AS U ON (U.id_utente = M.id_mittente)"; } elseif ($type == ADA_MSG_PRV_CHAT) { $user = $this->user_id; $sql = "SELECT U.nome, M.id_messaggio, M.data_ora, M.tipo, M.testo\n FROM (SELECT id_messaggio, data_ora, tipo, id_mittente, testo FROM messaggi\n WHERE id_group={$id_group} {$message_id_sql} AND tipo='{$type}') AS M\n LEFT JOIN utente AS U ON (U.id_utente = M.id_mittente)\n LEFT JOIN\n (SELECT id_messaggio FROM destinatari_messaggi WHERE id_utente={$user_id}) AS PM\n ON (M.id_messaggio=PM.id_messaggio)\n "; } $result = $db->getAll($sql, null, AMA_FETCH_ASSOC); if (AMA_DataHandler::isError($result)) { return new AMA_Error(AMA_ERR_GET); } return $result; }