!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 50.64 GB of 127.8 GB (39.63%)
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_student.php (70.53 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
include_once("da_rg_Student.php");

/**
 * Mo_rg_student Class
 *
 * Class นี้ประกอบด้วยฟังก์ชั่นที่ใช้จัดการงานเกี่ยวกับตารางนักศึกษา
 *
 * @package    Student
 */
class Mo_rg_student extends Da_rg_Student {

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษาตามเงื่อนไข
     *
     * @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_Student.*
     */
    
public function qryStd($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    $c1
                    $c3
                    $c2"
;
        
$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_Student.*, rg_Prefix.*
     * @todo    use
     */
    
public function qryStdJoinPf($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
/*$sql = "SELECT rg_Student.*, Prefix.*, rg_StudentMoe.CompsExam
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentMoe ON rg_StudentMoe.stdId = rg_Student.stdId
                    $c1
                    $c3
                    $c2";*/
        
$sql "SELECT rg_Student.*, Prefix.*
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    $c1
                    $c3
                    $c2"
;
        
//echo $sql;
        
$query $this->db->query($sql);
        
//echo "START<pre>"; print_r($query);
        
return $query;
    }

    public function 
qryStdJoinPfMoe($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT rg_Student.*, Prefix.*, rg_StudentMoe.CompsExam
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentMoe ON rg_StudentMoe.stdId = rg_Student.stdId
                    $c1
                    $c3
                    $c2"
;
        
//echo $sql;
        
$query $this->db->query($sql);
        
//echo "START<pre>"; print_r($query);
        
return $query;
    }
    
    public function 
qryStdJoinPfComPos($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT $this->rg_dbname.rg_Student.*, $this->rg_dbname.rg_StudentMoe.CompsExam
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentMoe ON rg_StudentMoe.stdId = rg_Student.stdId
                    $c1
                    $c3
                    $c2"
;
        
$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_Student.*, rg_Prefix.*, rg_ScholarOwner.*, rg_Province.*, rg_EntryType.*
     * @todo    use
     */
     
public function qryStdJoinPfSoPrvEt($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

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

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix pf ON stdPfId = pf.prefixId 
                    LEFT JOIN $this->rg_dbname.rg_Adviser ON stdId = advStdId AND advPrsId = ? AND advAcY = ? 
                    $c1
                    $c2"
;
        
$query $this->db->query($sql, array($prsId$acY));
        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_Student.*, rg_Prefix.*, rg_ScholarOwner.*, rg_Province.*, rg_EntryType.*, rg_StudentSummary.*
     * @todo    use
     */
     
public function qryStdAndSstIdISNot6JoinPfSoPrvEt($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON provinceId=soPrvId
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON stdId=ssmStdId
                $c1
                AND ssmSstId <> 6
                $c3
                $c2"
;
        
$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_Student.*, rg_StudentSummaray.*, rg_Prefix.*, rg_StudentDetails.*, rg_Curriculum.*, rg_Generation.*
     * @todo    use
     */
     
public function qryStdJoinPfSdtCurGen($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON stdId=ssmStdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        
//echo $this->db->last_query();die;
        
return $query;
        
     }

    
/*
     * @todo    use
     */
     
public function qryStdByCurIdAndAdYAndSyIdJoinSsmPfSdtCurGen($ssmAcY,$ssmTmId,$stdCurId,$stdAdY,$stdSyId) {
        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON stdId=ssmStdId AND ssmAcY=? AND ssmTmId=?
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                WHERE stdCurId=?
                AND stdAdY=?
                AND stdSyId=?
                ORDER BY stdCode ASC "
;
        
$query $this->db->query($sql,array($ssmAcY,$ssmTmId,$stdCurId,$stdAdY,$stdSyId));
        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_Student.*, rg_Curriculum.*, rg_Prefix.*, rg_StudyYear.*, rg_StudentSummaray.*
     * @todo    use
     */
     
public function qryStdJoinCurPfSySsm($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql =  "SELECT *
                 FROM $this->rg_dbname.rg_Student
                 LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                 LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                 LEFT JOIN $this->rg_dbname.rg_StudyYear ON stdSyId=syId
                 LEFT JOIN $this->rg_dbname.rg_StudentSummary ON stdId=ssmStdId
                 $c1
                 $c3
                 $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
     }

     public function 
qryStdJoinPfCurGen($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                $c1
                $c3
                $c2"
;
        
$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_Student.*, rg_StudentSummaray.*, rg_Prefix.*, rg_StudentDetails.*, rg_Curriculum.*, rg_Generation.*
     * @todo    use
     */
     
public function qryStdJoinPfSdtCurGenEdu($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql =  "SELECT *, p.provinceName as soPrv, pv.provinceName as pPrv , curConfig.ccName
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_StudentSummary ON stdId = ssmStdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId
                LEFT JOIN $this->rg_dbname.rg_CurriculumConfig as curConfig ON curConfig.ccId = curCcId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId = genId
                LEFT JOIN $this->ppc_dbname.Level ON levelId = curElvId
                LEFT JOIN $this->ppc_dbname.District ON sdtDtIdParent = districtId
                LEFT JOIN $this->ppc_dbname.Amphur AS ppcAm ON sdtApIdParent = ppcAm.amphurId
                LEFT JOIN $this->ppc_dbname.Province as pv ON sdtPrvIdParent = pv.provinceId
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId = soId
                LEFT JOIN $this->ppc_dbname.Province as p ON soPrvId = p.provinceId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
     }


    public function 
qryStdByCurId($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT * FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON sdtStdId=stdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdJoinPrfJoinSchoJoinPrvByCurId($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT * FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON sdtStdId = stdId
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId
                INNER JOIN $this->rg_dbname.rg_ScholarOwner ON soId = stdSoId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId = provinceId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdJoinPrfJoinSchoJoinPrvHomeByCurId($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT * FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON sdtStdId = stdId
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId
                INNER JOIN $this->rg_dbname.rg_ScholarOwner ON soId = stdSoId
                LEFT JOIN $this->ppc_dbname.Province ON sdtPrvIdHome = provinceId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

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

        
$c1 substr($where0, -3);

        
$sql "SELECT COUNT(stdId) AS num 
                FROM $this->rg_dbname.rg_Student 
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query->row()->num;
    }

    public function 
qryStdJoinPreadmit($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT count(stdId) AS NUM FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId = paId 
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        if(
$query->num_rows()){
            return 
$query->row()->NUM;
        }else{
            return 
0;
        }
    }

    public function 
qryStdJoinGeneration($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT s.stdCurId, s.stdGenId, s.stdSyId,s.stdAdY, count(s.stdId) AS studentId, g.*,c.*
        FROM $this->rg_dbname.rg_Student s 
        LEFT JOIN $this->rg_dbname.rg_Generation g ON s.stdGenId=g.genId 
        LEFT JOIN $this->rg_dbname.rg_Curriculum c ON s.stdCurId=c.curId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdCountStdId($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT  count(stdId) AS NUM
        FROM $this->rg_dbname.rg_Student
        INNER JOIN $this->rg_dbname.rg_StudentDetails ON sdtStdId = stdId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        
//echo $this->db->last_query();
        
if($query->num_rows()){
            return 
$query->row()->NUM;
        }else{
            return 
0;
        }
    }

    
//***************************************************

    /**
     * หน้าที่ของฟังก์ชั่น คือ หาชื่อหลักสูตร และชื่อรุ่น ของหลักสูตร และปีที่เข้าศึกษา
     *
     * @access    public
     * @param    array con1 is WHERE contition อยู่ในรูปแบบ con1('key' => value)
     * @param    array con2 is GROUP BY condition อยู่ในรูปแบบ con2('key' => value)
     * @return    qurey = 1 row (stdCurId, curId, curName, stdGenId, genId, genNo, stdAdY)
    */
    
public function qryCurGen($con1=""$con2="") {
        
$where $this->checkCondition($con1);
        
$grp $this->checkGroupBy($con2);

        
$c1 substr($where0, -3);
        
$c2 substr($grp0, -1);
        
$sql "SELECT stdCurId, curId, curName, stdGenId, genId, genNo, stdAdY 
                    FROM $this->rg_dbname.rg_Student
                    INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                    INNER JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                    $c1
                    $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หานักศึกษา ตามเงื่อนไข และเรียงลำดับตามชื่อ นามสกุล
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
     * @return    qurey >= 1 rows (rg_Student.*)
    */
    
public function qryStdOrderNameSurname($condition="") {
        
$con $this->checkCondition($condition);
        
$consubstr($con0, -3);

        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    $con
                    ORDER BY CONVERT (stdName USING tis620),
                    CONVERT (stdSurname USING tis620)"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาหลักสูตรที่ยังไม่ได้สร้างรหัสนักศึกษา ประจำเมนูนักศึกษา->สร้างรหัสนักศึกษาใหม่
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
     * @return    qurey >= 1 rows (rg_Student.*)
    */
    
public function qryCurIsNotGenStdCode($condition="") {
        
$qry $this->checkCondition($condition);
        
$consubstr($qry0, -3);

        
$sql "SELECT rg_Student.*, rg_Curriculum.*
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                AND stdGenStatus='N'
                $con
                GROUP BY stdCurId, stdAdY"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลของนักศึกษา ประจำเมนูนักศึกษา->ปรับปรุงสถานะนักศึกษารายนักศึกษา
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
     * @return    qurey >= 1 rows (rg_Student.*)
    */
    
public function qryStdDetails($condition="") {
        
$qry $this->checkCondition($condition);
        
$con substr($qry0, -3);

        
$sql "SELECT rg_Student.*, rg_StudentDetails.*, prefixId, prefixName, prefixNameEng, curId, curName, curElvId, levelId, levelName, fsId, fsName, soId, `soName`, provinceId, provinceName, etId, etName, paId, paName
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                LEFT JOIN $this->ppc_dbname.Level ON curElvId=levelId
                LEFT JOIN $this->rg_dbname.rg_FinanceStatus ON stdFsId=fsId
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
                LEFT JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId=paId
                $con"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา คำนำหน้าชื่อ หลักสูตร ชั้นปี สถานะนักศึกษา และระดับการศึกษาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition1 โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @return    query >= 1 rows : rg_Student.*, rg_Prefix.*, rg_Curriculum.*, rg_StudyYear.*, rg_StudentStatus.*, rg_EduLevel.*
     * @todo    use
     */
    
public function qryStdJoinPfCurSySstElv($condition="",$order="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student 
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId 
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId 
                LEFT JOIN $this->rg_dbname.rg_StudyYear ON stdSyId = syId 
                LEFT JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId = sstId 
                LEFT JOIN $this->ppc_dbname.Level ON curElvId = levelId 
                $c1
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

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

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                $c1
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    function 
qryStdJoinSdtForMil(){
        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                where (sdtRtId = '1' or sdtRtId IS NULL) and stdSstId = '1' and sdtSex = 'M'"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา คำนำหน้าชื่อ หลักสูตร ชั้นปี สถานะนักศึกษา และระดับการศึกษาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition1 โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขการเรียงลำดับ ORDER BY
     * @return    query >= 1 rows : rg_Student.*, rg_StudentDetails.*, rg_Prefix.*, rg_Curriculum.*, rg_StudyYear.*, rg_StudentStatus.*, rg_EduLevel.*
     * @todo    use
     */
    
public function qryStdJoinSdtPfCurSySstElv($condition="",$order="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

        
$sql =  "SELECT *
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId 
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId 
                LEFT JOIN $this->rg_dbname.rg_StudyYear ON stdSyId = syId 
                LEFT JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId = sstId 
                LEFT JOIN $this->ppc_dbname.Level ON curElvId = levelId 
                $c1
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ ค้นหา/รายงาน > สรุปข้อมูลนักศึกษา 
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value)
     * @return    qurey >= 1 rows (rg_Student.*)
    */
    
public function qryStdJoinCur($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT * 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId = curId 
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
//----------------nooooo-------------

    
public function qryCoRegist($acY$tmId$stdCode) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    INNER JOIN $this->rg_dbname.rg_RegistDetails ON stdId=rdStdId
                    INNER JOIN $this->rg_dbname.rg_CourseOpen ON rdCoId=coId
                    INNER JOIN $this->rg_dbname.rg_Course ON coCrsId=crsId
                    WHERE rdAcY=?
                    AND rdTmId=?
                    AND stdCode=?"
;
        
$query $this->db->query($sql, array($acY$tmId$stdCode));
        return 
$query;
    }
    public function 
rsSutGen($acy)
    {
        
$sql "SELECT s.stdCurId, stdAdY, s.stdGenId, genNo,curName,COUNT( stdId ) AS numStd
                FROM $this->rg_dbname.rg_Student s
                JOIN $this->rg_dbname.rg_Generation G ON stdGenId = genId
                JOIN $this->rg_dbname.rg_Curriculum C ON curId = genCurId
                WHERE stdGenStatus = 'Y' 
                    AND genAcy <= ?
                    AND (? - stdAdY) BETWEEN 1 AND curNumStudyY
                GROUP BY s.stdCurId,stdAdY,stdGenId "
;
        
$query $this->db->query($sql,array($acy,$acy));
        return 
$query;

    }

    function 
qryStdByCurIdGdDateGdY($curId$frDate$toDate$gdY) {
        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_Student 
                    WHERE stdCurId = ? 
                    AND stdGraduateDate >= ? 
                    AND stdGraduateDate <= ? 
                    AND stdGraduateY = ?"
;

        
$query $this->db->query($sql, array($curId$frDate$toDate$gdY));
        
//echo $this->db->last_query();
        
return $query;
    }

    function 
getCountStIdByPgIdAndFinishDateAndGdYAndStSex($curId$fd$ld$gy$sex){
        
$sql "SELECT COUNT(stdId) as num 
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON sdtStdId = stdId
                WHERE stdCurId = ? 
                AND stdGraduateDate >= ? AND stdGraduateDate <= ? AND stdGraduateY = ? AND sdtSex= ?"
;
        
$query $this->db->query($sql,array($curId$fd$ld$gy$sex));
        
        if (
$query->num_rows()) {
            return 
$query->row()->num;
        } else {
            return 
'';
        }
    }

    function 
qryStdByCurIdAndAdYAndSstIdAndGraduateDateAndGraduateY($stdCurId,$stdAdY) {
        
$sql "SELECT * FROM $this->rg_dbname.rg_Student 
            LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
            LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
            LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId = genId
        WHERE stdCurId=? and stdAdY=?
                        "
;
        
$query $this->db->query($sql,array($stdCurId$stdAdY));
        return 
$query;
    }

    function 
qryStdJoinStdSumByacY($acY) {
        
$sql "SELECT COUNT(stdId) AS num FROM(
                        SELECT stdId FROM $this->rg_dbname.rg_Student
                            WHERE stdAdY <= '$acY' AND stdGenStatus='Y' AND stdSstId=1
                        UNION
                        SELECT ssmStdId FROM $this->rg_dbname.rg_StudentSummary
                            WHERE ssmAcY = '$acY' AND ssmSstId=1
                            GROUP BY ssmStdId
                    ) aa"
;
        
$query $this->db->query($sql);
        if (
$query) {
            return 
$query->row()->num;
        } else {
            return 
'';
        }
    }

    function 
qryByAdYAndStudying($adY,$ssmAcY) {
        
$sql "SELECT stdId 
                    FROM (
                        SELECT std.stdId, std.stdCode 
                            FROM $this->rg_dbname.rg_Student std 
                            WHERE std.stdAdY<=?
                            AND std.stdGenStatus='Y' 
                            AND std.stdSstId=1 
                        union 
                        SELECT std.stdId, std.stdCode 
                            FROM $this->rg_dbname.rg_StudentSummary ssm, rg_Student std 
                            WHERE ssm.ssmAcY=? 
                            AND ssm.ssmSstId=1 
                            AND ssm.ssmStdId=std.stdId 
                            GROUP BY ssm.ssmStdId
                    ) aa 
                    ORDER BY stdCode"
;
        
$query $this->db->query($sql,array($adY,$ssmAcY));
        return 
$query;
    }

    
// use
    
public function qryByCurIdAndAdYAndSbeAcYAndSbeTmIdGroupIdOrderCodeJoinPfSbe($curId,$sbeAcY,$sbeTmId$adY) {
        
$sql "SELECT * FROM
                    (SELECT stdId, stdCode, stdName, stdSurname, prefixName 
                    FROM $this->rg_dbname.rg_Student
                    LEFT JOIN $this->ppc_dbname.Prefix  ON stdPfId=prefixId
                    WHERE stdCurId=?
                    AND stdAdY=?) AS t1
                    LEFT JOIN
                    (SELECT sbeStdId, SUM(sbeCutPoint) AS sumSbeCurPoint
                    FROM $this->rg_dbname.rg_StudentBehavior 
                    WHERE  sbeAcY=? 
                    AND sbeTmId=?
                    GROUP BY sbeStdId) AS t2 on stdId=sbeStdId 
                    ORDER BY stdCode"
;
        
$query $this->db->query($sql,array($curId,$adY,$sbeAcY,$sbeTmId));
        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_Student.*, rg_Prefix.*, rg_StudyYear.*, rg_EntryType.*, rg_ScholarOwner.*, rg_Province.*, rg_StudentStatus.*, rg_FinanceStatus.*, rg_GradeTp.*, rg_PreAdmit.*
     * @todo    not use
     */
    /*public function qryStdJoinPfSyEtSoPrvSstFsGtpPa($condition="",$order="",$group="") {
        $where = $this->checkCondition($condition);
        $order = $this->checkOrderBy($order);
        $group = $this->checkGroupBy($group);

        $c1 = substr($where, 0, -3);
        $c2 = substr($order, 0, -1);
        $c3 = substr($group, 0, -1);

        $sql = "SELECT *, provinceName as prvNameSo
            FROM $this->rg_dbname.rg_Student
            INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
            INNER JOIN $this->rg_dbname.rg_StudyYear ON stdSyId=syId
            INNER JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
            INNER JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
            LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
            INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
            INNER JOIN $this->rg_dbname.rg_FinanceStatus ON stdFsId=fsId
            INNER JOIN $this->rg_dbname.rg_GradeTp ON stdGtpId=gtpId
            LEFT JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId=paId
            $c1
            $c3
            $c2";
        $query = $this->db->query($sql);
        return $query;
    }*/


    //use
    
public function qryStdJoinSstPfSyEtSoPrvSstFsGtpPaEdu($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *, provinceName as prvNameSo
            FROM $this->rg_dbname.rg_Student
            INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
            INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
            INNER JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
            LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
            LEFT JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId=paId
            INNER JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
            INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
            LEFT JOIN $this->ppc_dbname.Nation ON sdtNtId=nationId
            LEFT JOIN $this->ppc_dbname.Religion ON sdtRlgId=religionId
            LEFT JOIN $this->rg_dbname.rg_EduDegree ON sdtEdgIdPre=edgId
            $c1
            $c3
            $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
//use
    
public function qryStdJoinAllForRpt($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *, e.edgName as cEdgName, e.edgNameE as cEdgNameE, se.edgName as sdtEdgName, se.edgNameE as sdtEdgNameE
            FROM $this->rg_dbname.rg_Student
            INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
            INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
            INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
            LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
            LEFT JOIN $this->ppc_dbname.Province ON sdtPrvIdBirth=provinceId
            LEFT JOIN $this->ppc_dbname.Nation ON sdtNtId=nationId
            LEFT JOIN $this->ppc_dbname.Religion ON sdtRlgId=religionId
            LEFT JOIN $this->rg_dbname.rg_EduDegree se ON sdtEdgIdPre=se.edgId
            LEFT JOIN $this->rg_dbname.rg_EduDegree e ON curEdgId=e.edgId
            $c1
            $c3
            $c2"
;
        
$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_Student.*, rg_Prefix.*, rg_ScholarOwner.*, rg_Province.*
     * @todo    use
     */
    
public function qryStdPfSoPrv($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *, provinceName AS prvNameSo
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารหัสนักศึกษาที่มากสุดที่มีการสร้างรหัสนักศึกษาแล้ว
     *
     * @access    public
     * @param    stdCurId: รหัสหลักสูตร
     * @param    stdAdY: ปีการศึกษาที่เข้า
     * @param    stdId: รหัสนักศึกษา
     * @return    num: ค่ารหัสนักศึกษาที่มากสุด
     * @todo    use
     */
    
public function qryByMaxCodeInCurAndGSIsY($stdCurId,$stdAdY,$stdId) {
        
$sql "SELECT MAX(stdCode) AS num
                    FROM $this->rg_dbname.rg_Student
                    WHERE stdCurId=?
                    AND stdAdY=?
                    AND stdId <> ?
                    AND stdGenStatus='Y'"
;
        
$query $this->db->query($sql,array($stdCurId,$stdAdY,$stdId));
        if(
$row=$query->row())
            return 
$row->num;
    }

    function 
qryStdByCurIdAdYSstIdStr($curId$adY$sstIdStr) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_Student 
                        WHERE stdCurId = ? 
                        AND stdAdY = ? 
                        AND stdSstId IN ($sstIdStr) 
                        ORDER BY stdCode"
;
        
$query $this->db->query($sql, array($curId$adY));
        return 
$query;
    }

    function 
qryStdByCurIdSyIdSstIdStr($curId$syId$sstIdStr) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_Student 
                        WHERE stdCurId = ? 
                        AND stdSyId = ? 
                        AND stdSstId IN ($sstIdStr) 
                        ORDER BY stdCode"
;
        
$query $this->db->query($sql, array($curId$syId));
        return 
$query;
    }

    public function 
qryStdByCurIdAdYSyIdSstIdStr($curId$adY$syId$sstIdStr) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_Student 
                        WHERE stdCurId = ? 
                        AND stdAdY = ? 
                        AND stdSyId = ? 
                        AND stdSstId IN ($sstIdStr) 
                        AND stdGraduateDate = '0000-00-00' 
                        AND stdGraduateY = 0 
                        ORDER BY stdCode"
;
        
$query $this->db->query($sql, array($curId$adY$syId));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาสถานะการสร้างรหัสนักศึกษาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @return    num: หารหัสการสร้างนักศึกษา
     * @todo    use
     */
    
public function qryStdGroupGS($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT stdGenStatus
                FROM $this->rg_dbname.rg_Student
                $c1
                GROUP BY stdGenStatus"
;
        
$query $this->db->query($sql);
        if(
$row=$query->row()) {
            return 
$row->stdGenStatus;
        } else {
            return 
'N';
        }
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หารหัสรุ่นของนักศึกษาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @return    num: ค่ารหัสนรุ่นของนักศึกษาที่มากสุด
     * @todo    use
     */
    
public function qryStdGenId($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT stdGenId, MIN(genNo) AS genNo
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                $c1
                GROUP BY stdGenId"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdByCodeStStatus($stdCode$stStatus) {
        
$sql "SELECT * 
                        FROM $this->rg_dbname.rg_Student 
                        WHERE stdCode = ? 
                        AND stdSstId IN ($stStatus) 
                        AND stdGenStatus = 'Y'"
;
        
$query $this->db->query($sql, array($stdCode));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษาตามรหัสนักศึกษา
     *
     * @access    public
     * @param    stdCode: รหัสนักศึกษา
     * @return    stdCode: รหัสนักศึกษา
     * @todo    use
     */
    
public function qryStdCode($stdCode) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                WHERE stdCode=?"
;
        
$query $this->db->query($sql,array($stdCode));
        return 
$query;
    }

    function 
qryStdByCurIdGroupAdY($curId) {
        
$sql "SELECT stdAdY, MAX(stdSyId) AS stdSyId 
                        FROM $this->rg_dbname.rg_Student 
                        WHERE stdCurId = ? 
                        AND stdGenStatus = 'Y' 
                        GROUP BY stdAdY"
;
        
$query $this->db->query($sql, array($curId));
        return 
$query;
    }

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

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

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

    function 
get_optionsGroupGraduateY($condition=""$order=""$optional='y') {
        
$query $this->qryStdGroupGraduateY($condition$order);
        if(
$optional=='y'$opt[''] = '';
        foreach(
$query->result() as $row) {
            
$opt[$row->stdGraduateY] = $row->stdGraduateY;
        }
        return 
$opt;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา คำนำหน้าชื่อ หลักสูตร ชั้นปี ตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @return    $query >= 1 row: rg_Student.*, rg_Prefix.*, rg_Curriculum.*, rg_StudyYear.*
     * @todo    use
     */
    
function qryPfCurSyTm($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT * FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                INNER JOIN $this->rg_dbname.rg_StudyYear ON stdSyId=syId
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษาตามรหัสนักศึกษา ชื่อ นามสกุล
     *
     * @access    public
     * @return    query >= 1 rows : rg_Student.*, rg_Prefix.*
     * @todo    use
     */
    
public function qryStdByLikeCodeAndNameAndSurname($stdCode,$stdName,$stdSurname) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.Prefix ON stdPfId=prefixId
                WHERE stdCode LIKE ?
                AND stdName LIKE ?
                AND stdSurname LIKE ?"
;
        
$query $this->db->query($sql,array('%'.$stdCode.'%','%'.$stdName.'%','%'.$stdSurname.'%'));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา
     *
     * @access    public
     * @return    query >= 1 rows:
     * @todo    use
     */
    
public function qryStdMB($stdId) {
        
$sql "SELECT *, provinceName AS prvNameSo
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                INNER JOIN $this->ppc_dbname.Level ON curElvId=levelId
                INNER JOIN $this->rg_dbname.rg_StudyYear ON stdSyId=syId
                INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
                INNER JOIN $this->rg_dbname.rg_Term ON stdTmIdAdmit=tmId
                INNER JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
                INNER JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                LEFT JOIN $this->rg_dbname.rg_FinanceStatus ON stdFsId=fsId
                LEFT JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId=paId
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
                LEFT JOIN $this->rg_dbname.rg_EntryType2 ON stdEt2Id=et2Id
                WHERE stdId=?"
;
        
$query $this->db->query($sql,array($stdId));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา คำนำหน้าชื่อ และข้อมูลสถานะนักศึกษาตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง ORDER
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง GROUP
     * @return    $query >= 1 row: rg_Student.*, rg_Prefix.*, rg_StudentStatus.*
     * @todo    use
     */
    
public function qryStdJoinPfSst($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId=sstId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ คำนวณชั้นปีนักศึกษา
     *
     * @access    public
     * @param    $stdId : รหัสนักศึกษา
     * @param    $acY : ปีการศึกษา
     * @return    $sy : ค่าชั้นปี
     * @todo    use
     */
    
public function calSyByStdIdAndAcY($stdId$acY) {
        
$si =& get_instance();
        
$si->load->model($this->config->item("rg_folder").'mo_rg_studentsummary','ssm');

        
$this->stdId $stdId;
        
$qu_std $this->get_by_key();

        
$sy 1;
        
$ssmPassStatus '1,2,3';
        if(
$qu_std->num_rows()) {
            for(
$i=$qu_std->row()->stdAdY$i<$acY$i++) {
                
$ssm $si->ssm->qrySsmByStdIdAndAcYAndSsmPassStatusStr($stdId,$i,$ssmPassStatus);
                
$sy = ($ssm->num_rows()) ? $sy+$sy;
            }
        }
        return 
$sy;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษาที่มี สถานะตามเงื่อนไข
     *
     * @access    public
     * @param    $stdSstId : string สถานะนักศึกษา
     * @return  $query >= 1 row: rg_Student.*
     * @todo    use
     */
    
public function qryStdByStdSstIdStr($stdSstIdStr) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                WHERE stdSstId IN (?)
                ORDER BY stdId"
;
        
$query $this->db->query($sql,array($stdSstIdStr));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาหลักสูตรที่มีนักศึกษา
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง ORDER
     * @return    $query >=1 rows: stdCurId
     * @todo    use
     * @todo    เปลี่ยน order จาก stdCurId -> curName
     */
    
public function qryStdGroupStdCurId($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT stdCurId, curName
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                $c1
                GROUP BY stdCurId
                ORDER BY CONVERT(curName USING TIS620)"
;
        
$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
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง GROUP
     * @return    $query >= 1 row: rg_Student.*, rg_Prefix.*, rg_Curriculum.*
     * @todo    use
     */
    
public function qryStdJoinPfCur($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);    
        
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }
    
    public function 
qryStdJoinRgPfCur($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);    
        
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                INNER JOIN $this->rg_dbname.rg_Regist  ON stdId=rgStdId
                INNER JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                INNER JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdBystdSstIdIs4($stdCurId,$stdAdY) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId = sstId
                    WHERE stdCurId = ? 
                    AND stdAdY = ?
                    AND stdSstId = 4
                    AND stdGraduateDate<>0000-00-00
                    AND stdGraduateY<>0"
;
        
$query $this->db->query($sql,array($stdCurId,$stdAdY));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ
     *
     * @access    public
     * @param    รหัสหลักสูตร
     * @param    ปีการศึกษาเริ่มต้น
     * @param    ปีการศึกษาสิ้นสุด
     * @return        $query
     * @todo    use
     */
    
public function qryByCurIdAndStartAdYAndEndAdYJoinPfSdtCurGen($curId,$startAdY,$endAdY) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                    LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                    LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                    WHERE stdCurId=?
                    AND stdAdY BETWEEN ? AND ?
                    ORDER BY stdCode ASC"
;
        
$query $this->db->query($sql,array($curId,$startAdY,$endAdY));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ
     *
     * @access    public
     * @param    รหัสนักศึกษา
     * @return        $query
     * @todo        use
     */
    
public function qryByCodeAndGenStatusIsYJoinPfSdtCurGen($stdCode) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                    LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                    LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                    WHERE stdCode=?
                    AND stdGenStatus='Y'"
;
        
$query $this->db->query($sql,array($stdCode));
        return 
$query;
    }

    
/**
     * หน้าที่ของฟังก์ชั่น คือ
     *
     * @access    public
     * @param    $startAdY,$endAdY
     * @return        $query
     * @todo        use
     */
    
public function qryByStartAdYAndEndAdYJoinPfSdtCurGen($startAdY,$endAdY) {
        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                    LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                    LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                    LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                    WHERE stdAdY BETWEEN ? AND ?
                    ORDER BY stdCode ASC"
;
        
$query $this->db->query($sql,array($startAdY,$endAdY));
        return 
$query;
    }
    
    
    
    public function 
qryStudentForFinance($stdCode){
        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_Student, $this->ppc_dbname.Prefix WHERE stdPfId = prefixId and stdGenStatus= 'Y' and stdCode = ?  and stdSstId between 1 and 2"
;
        
$query $this->db->query($sql,array($stdCode));
        return 
$query;
    } 

    
/**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษา คำนำหน้าชื่อ และการกู้ยืมตามเงื่อนไข
     *
     * @access    public
     * @param    array condition โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง SELECT
     * @param    array order โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง ORDER
     * @param    array group โดยรูปแบบของ array จะอยู่ในรูป condition('key' => value) ไว้สำหรับระบุเงื่อนไขของคำสั่ง GROUP
     * @return    $query >= 1 row: rg_Student.*, rg_Prefix.*, rg_AllowSendGrade.*
     * @todo    use
     */
    
public function qryStdJoinPfAsg($condition="",$order="",$group="") {
        
$where $this->checkCondition($condition);
        
$order $this->checkOrderBy($order);
        
$group $this->checkGroupBy($group);

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);
        
$c3 substr($group0, -1);    

        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_AllowSendGrade ON stdId=asgStdId
                $c1
                $c3
                $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryStdJoinPfSdm($acY$tmId) {
        
$sql "SELECT std.*, pf.*, sdm.*, 
                IF(pl1.plBuilding, pl1.plRmNo, pl1.hwName) AS hwName1, 
                pl2.hwName AS hwName2 
                FROM $this->rg_dbname.rg_Student std 
                LEFT JOIN $this->ppc_dbname.Prefix pf ON stdPfId = prefixId 
                LEFT JOIN $this->rg_dbname.rg_StudentDomitory sdm ON stdId = sdmStdId AND sdmAcY = ? AND sdmTmId = ? 
                LEFT JOIN $this->ppc_dbname.spc_Place pl1 ON sdmDmId = pl1.plHwId 
                LEFT JOIN $this->ppc_dbname.spc_Place pl2 ON pl1.plBuilding = pl2.plHwId 
                WHERE stdCurId = ? 
                AND stdAdY = ? 
                ORDER BY stdCode"
;
        
$query $this->db->query($sql, array($acY$tmId$this->stdCurId$this->stdAdY));
        return 
$query;
    }

    
// @todo    use
    // @create    pamy
    
public function qryStdGroupStdGenStatus($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT stdGenStatus
                FROM $this->rg_dbname.rg_Student
                $c1
                GROUP BY stdGenStatus"
;
        
$query $this->db->query($sql);
        if(
$query->num_rows())
            return 
$query->row()->stdGenStatus;
        else
            return 
NULL;
    }

    
// @todo    use
    // @create    pamy
    
public function GetNextStdCode($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "SELECT MAX(stdCode) AS stdCode
                FROM $this->rg_dbname.rg_Student
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query->row()->stdCode+1;
    }

    
// @todo    use
    // @create    pamy
    
public function qryStdByCitizenIdJoinSdt($stdCurId,$stdAdY,$sdtCitizenId,$stdId) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->rg_dbname.rg_StudentDetails ON stdId=sdtStdId
                WHERE stdCurId=?
                AND stdAdY=?
                AND sdtCitizenId=?
                AND stdId<>?"
;
        
$query $this->db->query($sql,array($stdCurId,$stdAdY,$sdtCitizenId,$stdId));
        return 
$query;
    }

    
// ***** Start MIS *****
    
function qryStdByAdYNotInStStatusGroupCurIdAdYEtIdSex($adY$stStatus) {
        
$sql "SELECT stdCurId, stdAdY, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                WHERE stdAdY = ? 
                AND stdSstId NOT IN ($stStatus) 
                AND stdGenStatus = 'Y' 
                GROUP BY stdCurId, stdAdY, stdEtId, sdtSex"
;
        
$query $this->db->query($sql, array($adY));
        return 
$query;
    }

    function 
qryStdByGraduateYGDGroupCurIdAdYEtIdSex($gdY) {
        
$sql "SELECT stdCurId, stdAdY, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                WHERE stdGraduateY= ? 
                AND stdSstId = 4 
                AND stdGraduateDate <> '0000-00-00' 
                GROUP BY stdCurId, stdAdY, stdEtId, sdtSex"
;
        
$query $this->db->query($sql, array($gdY));
        return 
$query;
    }

    function 
qryStdByNotInStStatusGroupCurIdAdYEtIdSex($stStatus) {
        
$sql "SELECT stdCurId, stdAdY, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                WHERE stdSstId NOT IN ($stStatus) 
                AND stdGenStatus = 'Y' 
                GROUP BY stdCurId, stdAdY, stdEtId, sdtSex"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryStdByNotInStStatusGroupCurIdAdYSyIdEtIdSex($stStatus) {
        
$sql "SELECT stdCurId, stdAdY, stdSyId, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                WHERE stdSstId NOT IN ($stStatus) 
                AND stdGenStatus = 'Y' 
                GROUP BY stdCurId, stdAdY, stdSyId, stdEtId, sdtSex"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
qryStdByNotInStStatusAcYRepeatClassGroupCurIdAdYSyIdEtIdSex($stStatus$acY) {
        
$sql "SELECT stdCurId, stdAdY, stdSyId, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                INNER JOIN $this->rg_dbname.rg_StudentSummary ON stdId = ssmStdId 
                WHERE stdSstId NOT IN ($stStatus) 
                AND stdGenStatus = 'Y' 
                AND ssmAcY= ? 
                AND ssmPassStatus = 4 
                GROUP BY stdCurId, stdAdY, stdSyId, stdEtId, sdtSex"
;
        
$query $this->db->query($sql, array($acY));
        return 
$query;
    }

    function 
qryStdByStStatusAcYGroupCurIdAdYSyIdEtIdSex($stStatus$acY) {
        
$sql "SELECT stdCurId, stdAdY, stdSyId, stdEtId, sdtSex, COUNT(stdId) AS stdId 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                INNER JOIN $this->rg_dbname.rg_StudentSummary ON stdId = ssmStdId 
                WHERE stdSstId IN ($stStatus) 
                AND stdGenStatus = 'Y' 
                AND ssmSstId IN ($stStatus) 
                AND ssmAcY = ? 
                GROUP BY stdCurId, stdAdY, stdSyId, stdEtId, sdtSex"
;
        
$query $this->db->query($sql, array($acY));
        return 
$query;
    }
    
// ***** End MIS *****

    /**
     * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลนักศึกษาตามเงื่อนไข
     *
     * @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_Student.*
     */
    
public function upDateStd($condition="") {
        
$where $this->checkCondition($condition);

        
$c1 substr($where0, -3);

        
$sql "UPDATE $this->rg_dbname.rg_Student
                SET stdCode=NULL
                $c1"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    
/**
     *@todo    use
     */
    
public function qryGropGraduateY() {
        
$sql "SELECT stdGraduateY
                FROM $this->rg_dbname.rg_Student
                WHERE stdSstId=4
                GROUP BY stdGraduateY"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

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

        
$c1 substr($where0, -3);
        
$c2 substr($order0, -1);

        
$sql "SELECT * 
                    FROM $this->rg_dbname.rg_Student 
                    INNER JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId 
                    INNER JOIN $this->rg_dbname.rg_StudentStatus ON stdSstIdTmp = sstId 
                    $c1
                    $c2"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
qryStdByStdSstIdNotIn5JoinPfSoPrvEt($stdCurId$stdAdY) {
        
$sql "SELECT *
                FROM $this->rg_dbname.rg_Student
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId=soId
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId=provinceId
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId=etId
                LEFT JOIN $this->rg_dbname.rg_Generation ON stdGenId=genId
                WHERE stdCurId=?
                AND stdAdY=?
                AND stdSstId NOT IN (5)
                ORDER BY stdCode"
;
        
$query $this->db->query($sql,array($stdCurId$stdAdY));
        return 
$query;
    }
    
    function 
JoinForEsaHealth($std='',$per=''){
        
$cond '';
        if (
$std) {
            
$cond .= "(stdCode LIKE '%$std%' OR stdName LIKE '%$std%' OR stdSurname LIKE '%$std%') ";
        }
        if (
$per) {
            
$cond .= ($std)? "AND sdtHpId = '$per' ":" sdtHpId = '$per' ";
        }
        
$sql "SELECT * FROM $this->rg_dbname.rg_Student INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId WHERE ".$cond."AND sdtHpId IS NOT NULL";
        
$query $this->db->query($sql);
        return 
$query;
    }

    function 
JoinForEsaHealthFetch($std,$per){
        
$cond '';
        if (
$std) {
            
$cond .= "(stdCode LIKE '%$std%' OR stdName LIKE '%$std%' OR stdSurname LIKE '%$std%') ";
        }
        if (
$per) {
            
$cond .= ($std)? "AND sdtHpId = '$per' ":" sdtHpId = '$per' ";
        }
        
$sql "SELECT * FROM $this->rg_dbname.rg_Student INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId INNER JOIN esa.sa_health_privilege  ON $this->rg_dbname.rg_Student.stdId = esa.sa_health_privilege.htp_std_id WHERE ".$cond.($std "AND":"")." sdtHpId IS NOT NULL";
        
$query $this->db->query($sql);
        return 
$query;
    }
    public function 
queryStd($stdCode) {
        

        
$sql "SELECT *
                    FROM $this->rg_dbname.rg_Student
                    where stdCode = '"
.$stdCode."'";
        
$query $this->db->query($sql);
        return 
$query;
    }
    function 
qryStdForRepRis($adY$syId$curId$sstId) {
        
$cond "WHERE ";
        
$cond.=($adY) ? "stdAdY=$adY AND " "";
        
$cond.=($syId) ? "stdSyId=$syId AND " "";
        
$cond.=($curId) ? "stdCurId=$curId AND " "";
        
$cond.=($sstId) ? "stdSstId IN ($sstId) AND " "";

        
$con substr($cond0, -4);

        
$sql "SELECT *, provinceName as prvNameSo 
                FROM $this->rg_dbname.rg_Student 
                INNER JOIN $this->rg_dbname.rg_StudentDetails ON stdId = sdtStdId 
                LEFT JOIN $this->rg_dbname.rg_StudyYear ON stdSyId = syId 
                LEFT JOIN $this->rg_dbname.rg_StudentStatus ON stdSstId = sstId 
                LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId = prefixId 
                LEFT JOIN $this->rg_dbname.rg_ScholarOwner ON stdSoId = soId 
                LEFT JOIN $this->ppc_dbname.Province ON soPrvId = provinceId 
                LEFT JOIN $this->rg_dbname.rg_PreAdmit ON stdPaId = paId 
                LEFT JOIN $this->rg_dbname.rg_EntryType ON stdEtId = etId 
                LEFT JOIN $this->ppc_dbname.Nation ON sdtNtId = nationId 
                LEFT JOIN $this->ppc_dbname.Religion ON sdtRlgId = religionId 
                LEFT JOIN $this->rg_dbname.rg_EduDegree ON sdtEdgIdPre = edgId 
                $con
                ORDER BY stdCode"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
queryStdGraduateCer($typeSt,$curId '',$adY '',$stdCode=''){

        if(
$typeSt == "N"){
            
$condition "WHERE std.stdCurId ={$curId} AND std.stdAdY ={$adY}";
        }else{
            
$condition "WHERE std.stdCode = {$stdCode}";
        }

        
/*echo$sql = "SELECT student . * , eduDegree.edgName
                FROM (
                    SELECT std.stdCode, {$this->ppc_dbname}.Prefix.pfName ,std.stdName, std.stdSurname, std.stdCurId, std.stdGraduateY, std.stdGraduateDate
                    FROM rg_Student std
                    INNER JOIN  {$this->ppc_dbname}.Prefix  on  {$this->ppc_dbname}.Prefix.pfId =  std.stdPfId
                    {$condition}
                ) student
                INNER JOIN rg_Curriculum as cur on  cur.curId =  student.stdCurId
                INNER JOIN rg_EduDegree as  eduDegree on eduDegree.edgId = cur.curEdgId ";*/
        
$sql "SELECT
                    student.*,
                    eduDegree.edgName 
                FROM
                    (
                    SELECT
                        std.stdCode, 
                        {$this->ppc_dbname}.Prefix.prefixName, 
                        std.stdName, 
                        std.stdSurname, 
                        std.stdCurId, 
                        std.stdGraduateY, 
                        std.stdGraduateDate
                        
                    FROM
                        regist.rg_Student AS std
                        INNER JOIN
                        {$this->ppc_dbname}.Prefix
                        ON 
                            std.stdPfId = peoplecenter.Prefix.prefixId
                    {$condition}
                    ) student
                    INNER JOIN rg_Curriculum AS cur ON cur.curId = student.stdCurId
                    INNER JOIN rg_EduDegree AS eduDegree ON eduDegree.edgId = cur.curEdgId"
;
        
//echo $sql; exit;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
queryCollege(){

        
$sql "SELECT 
                        coll.clgName, 
                        (
                            CASE coll.clgAddr
                            WHEN coll.clgAddr =1
                            THEN 'คณะพยาบาลศาสตร์'
                            ELSE 'คณะสาธารณสุขศาสตร์และสหเวชศาสตร์'
                            END
                        ) AS FacName
                FROM `rg_Config` AS config
                INNER JOIN rg_College AS coll ON coll.clgCode = config.cfgClgCode"
;
        
$query $this->db->query($sql);
        return 
$query;
    }

    public function 
CompsExamUpdate($stdId,$status){
        
$sql 'SELECT *  FROM     rg_StudentMoe WHERE stdId = '.$stdId;
        
$query $this->db->query($sql);
        
//echo $this->db->last_query();
        //exit;
        
if($query->num_rows()){
            
$sql 'UPDATE rg_StudentMoe SET CompsExam = "'.$status.'" WHERE stdId = '.$stdId;
        }else{
            
$sql 'INSERT INTO rg_StudentMoe(stdId,CompsExam) value('.$stdId.',"'.$status.'")';
        }
        
$query $this->db->query($sql);
        return 
$query;
    }

}
?>

:: 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.0137 ]--