Viewing file:      mo_rg_studentdomitory.php (5.3 KB)      -rwxr-xr-x Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
<?php
 include_once("da_rg_StudentDomitory.php");
 class Mo_rg_studentDomitory extends Da_rg_StudentDomitory {
     
     /**
      * หน้าที่ของฟังก์ชั่น คือ หาข้อมูลการพักหอพักของนักศึกษาตามเงื่อนไข
      *
      * @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_StudentDomitory.*
      * @todo    use
      */
     public function qrySdm($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 *
                     FROM $this->rg_dbname.rg_StudentDomitory
                     $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_StudentDomitory.*, rg_Domitory.*
      * @todo    use
      */
 //    public function qrySdmJoinDm($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 *
 //                    FROM $this->rg_dbname.rg_StudentDomitory
 //                    LEFT JOIN $this->rg_dbname.rg_Domitory ON sdmDmId=dmId
 //                    $c1
 //                    $c3
 //                    $c2";
 //        $query = $this->db->query($sql);
 //        return $query;
 //    }
 
     // use
     public function qrySdmJnStdCur($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 *
                     FROM $this->rg_dbname.rg_StudentDomitory
                     INNER JOIN $this->rg_dbname.rg_Student ON sdmStdId=stdId
                     LEFT JOIN $this->ppc_dbname.Prefix ON stdPfId=prefixId
                     LEFT JOIN $this->rg_dbname.rg_Curriculum ON stdCurId=curId
                     $c1
                     $c2
                     $c3";
         $query = $this->db->query($sql);
         return $query;
     }
 
     function qrySdmJoinPPC($condition="",$order="") {
         $where = $this->checkCondition($condition);
         $order = $this->checkOrderBy($order);
 
         $c1 = substr($where, 0, -3);
         $c2 = substr($order, 0, -1);
 
         $sql = "SELECT sdm.*, 
                     IF(pl1.plBuilding, pl1.plRmNo, pl1.hwName) AS hwName1, 
                     pl2.hwName AS hwName2 
                     FROM $this->rg_dbname.rg_StudentDomitory sdm 
                     INNER JOIN $this->ppc_dbname.spc_Place pl1 ON sdmDmId = pl1.plHwId 
                     LEFT JOIN $this->ppc_dbname.spc_Place pl2 ON pl1.plBuilding = pl2.plHwId 
                     $c1
                     $c2";
         $query = $this->db->query($sql);
         return $query;
     }
 
     function getFull() {
         /* Old Query 
         "SELECT * FROM $this->ppc_dbname.spc_Place 
                     LEFT JOIN (
                         SELECT sdmDmId, COUNT(*) AS num 
                         FROM $this->rg_dbname.rg_StudentDomitory 
                         WHERE sdmDmId = ? 
                         AND sdmAcY = ? 
                         AND sdmTmId = ?
                     ) AS tb ON plHwId = tb.sdmDmId 
                     WHERE plHwId = ? 
                     AND plCapacity <= IFNULL(tb.num, 0) 
                     AND plBuilding IS NOT NULL";*/
         $sql = "SELECT * FROM $this->ppc_dbname.spc_Place 
                     WHERE plHwId = ? 
                     AND plCapacity <= IFNULL(
                         (SELECT COUNT(*) AS num 
                         FROM $this->rg_dbname.rg_StudentDomitory 
                         WHERE sdmDmId = ? 
                         AND sdmAcY = ? 
                         AND sdmTmId = ?), 0) 
                     AND plBuilding IS NOT NULL";
         $query = $this->db->query($sql, array($this->sdmDmId, $this->sdmDmId, $this->sdmAcY, $this->sdmTmId));
         //$query = $this->db->query($sql, array($this->sdmDmId, $this->sdmAcY, $this->sdmTmId, $this->sdmDmId));
         return $query;
     }
 }
 ?>
  |