/** * itemを取得する * * @param int $item_id 項目ID * @return array * @access public */ function &getItems($where_params = null, $order_params = null, $limit = null, $offset = null, $func = null, $func_param = null) { $sql = "SELECT {items}.*, {items_options}.options,{items_options}.default_selected" . " FROM {items} " . " LEFT JOIN {items_options} ON ({items}.item_id={items_options}.item_id)"; $sql .= $this->_db->getWhereSQL($params, $where_params); $sql .= $this->_db->getOrderSQL($order_params); $result = $this->_db->execute($sql, $params, $limit, $offset, true, $func, $func_param); if ($result === false) { // エラーが発生した場合、エラーリストに追加 $this->_db->addError(); return $result; } return $result; }
/** * 下の階層のpageのリストを求める * @param array $page * @access private */ function _getChildPages($page) { $where_params = array("room_id = " . intval($page['room_id']) . " OR parent_id = " . intval($page['room_id']) => null); $order_params = array("thread_num" => "ASC"); $sql = "SELECT {pages}.* FROM {pages} "; $params = array(); $sql .= $this->_db->getWhereSQL($params, $where_params); $sql .= $this->_db->getOrderSQL($order_params); $parent_pages = $this->_db->execute($sql, $params, null, null, true, array($this, "_fetchcallbackGetChildPages"), $page); return $parent_pages; }
/** * pages,pages_users_linkの取得 * @param array $where_params * @param array $order_params * @param int $limit * @param int $start * @param function $func * @param array $func_param * @access public */ function &getPagesUsers($where_params = null, $order_params = null, $limit = 0, $start = 0, $func = null, $func_param = null) { $params = array(); $sql = "SELECT {pages}.*, {pages_users_link}.user_id, {authorities}.user_authority_id AS authority_id,{authorities}.hierarchy, {pages_users_link}.role_authority_id, {pages_users_link}.createroom_flag " . " FROM {pages} " . " LEFT JOIN {pages_users_link} ON {pages}.room_id = {pages_users_link}.room_id " . " LEFT JOIN {authorities} ON {pages_users_link}.role_authority_id = {authorities}.role_authority_id "; $sql .= $this->_db->getWhereSQL($params, $where_params); $sql .= $this->_db->getOrderSQL($order_params); $result = $this->_db->execute($sql, $params, $limit, $start, true, $func, $func_param); if ($result === false) { $this->_db->addError(); return $result; } return $result; }
/** * ルームに所属するpages_users_linkテーブルを取得する * * @param array $room_id_arr ルームID * @param array $where_params キー名称配列、whereデータ配列 * @param array $order_params キー名称配列、orderデータ配列 * @param integer $offset 取得し始めるレコードのオフセット * @param integer $limit 取得する件数 * @param function $func 各レコード処理で実行させるメソッド * @param array $func_param 各レコード処理で実行させるメソッドの引数 * @return array * @access public */ function &getPagesUsersLinkByRoom($room_id_arr, $where_params = null, $order_params = null, $limit = null, $offset = null, $func = null, $func_param = null) { //if($func == null) $func = array($this, "_getPagesUsersLinkFetchcallback"); $params = array(); $sql = "SELECT {pages_users_link}.*,{authorities}.user_authority_id AS authority_id,{authorities}.hierarchy " . " FROM {pages_users_link} " . " LEFT JOIN {authorities} ON ({pages_users_link}.role_authority_id={authorities}.role_authority_id)" . " WHERE room_id IN (" . implode(",", $room_id_arr) . ") "; $sql .= $this->_db->getWhereSQL($params, $where_params, false); //$sql .= " GROUP BY {pages_users_link}.user_id "; $sql .= $this->_db->getOrderSQL($order_params); $result = $this->_db->execute($sql, $params, $limit, $offset, true, $func, $func_param); if ($result === false) { // エラーが発生した場合、エラーリストに追加 $this->_db->addError(); return $result; } return $result; }