Viewing file: clsDetailScore.php (4.64 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
//--Class DetailScore--------------------------
//--PK of DetailScore ::
// 1. DSid
class DetailScore extends clsDB{
var $result;
var $DSid;
var $HSid;
var $DStext;
var $score;
var $CTFirst;
var $CTLast;
function DetailScore(&$c){
$this->c=$c->c;
$this->DB=$c->db;
}
function Save(){
//--ข้อมูลในอ๊อบเจ๊กเป็นข้อมูลใหม่หรือข้อมูลเดิม --1:ข้อมูลใหม่ 2:ข้อมูลเดิม
if ($this->status==1){
//uncomment a line below if your table use ID as running number
$this->DSid=$this->GetNextCode();
$sql = "insert into DetailScore values(
'$this->DSid',
'$this->HSid',
'$this->DStext',
'$this->score',
'$this->CTFirst',
'$this->CTLast'
)";
}else {
$sql = "update DetailScore set
HSid='$this->HSid',
DStext='$this->DStext',
score='$this->score',
CTFirst='$this->CTFirst',
CTLast='$this->CTLast'
where DSid='$this->DSid'";
}
return $this->Dml($sql);
}
function Delete(){
//--ลบข้อมูลเดิมในอ๊อบเจ๊ก, เป็นการลบข้อมูลทีละ 1 เรคอร์ด
//--ต้องเรียกเมธอดตามลำดับดังนี้ SearchByKey()-->GetRecord()-->Delete()
return $this->Dml("delete from DetailScore where DSid='$this->DSid'");
}
function GetNextCode(){
//--หาค่าสูงสุดของฟิลด์ที่ใช้เป็นคีย์ของตาราง ในลักษณะ auto increment
//--ต้องเป็นฟิลด์ชนิดตัวเลขจำนวนเต็มเท่านั้น และไม่ได้กำหนดรหัสเองทางจอภาพ
$this->SetQuery("select max(DSid) as num from DetailScore");
if ($result=$this->GetResult()) {
return $result['num']+1;
}
}
function RSDetailScore(){
//--เมธอดที่ขึ้นต้นด้วย RS (ResultSet) มีความหมายว่าจะได้รับข้อมูลกลับมาจากการ select มากกว่า 1 เรคอร์ด
//--จะต้องเรียกเมธอด GetRecord() ด้วยเสมอ นำข้อมูลจาก ResultSet เข้าอ๊อบเจ๊ก
//--โดยสามารถเพิ่มเมธอดได้ตามต้องการ แต่ต้องขึ้นต้นด้วย RS
$this->SetQuery("select * from DetailScore order by DSid");
}
function GetRecord(){
//--นำข้อมูลจาก ResultSet มากำหนดให้กับแอตทริบิวต์ของอ๊อบเจ็ก
//--เรียก GetRecord() หนึ่งครั้ง จะเลื่อนตัวชี้เรคอร์ดไปอีกหนึ่งเรคอร์ด
if ($this->result = $this->GetResult()) {
$this->DSid = $this->result['DSid'];
$this->HSid = $this->result['HSid'];
$this->DStext = $this->result['DStext'];
$this->score = $this->result['score'];
$this->CTFirst = $this->result['CTFirst'];
$this->CTLast = $this->result['CTLast'];
return 1;
}else {
return 0;
}
}
function SearchByKey($xKey){
//--ค้นหาข้อมูลตาม PK ต้องระบุพารามิเตอร์ด้วย และต้องตามด้วยเมธอด GetRecord() เสมอ
if ($this->SetQuery("select * from DetailScore where DSid= '$xKey'")){
return 1;
}else {
return 0;
}
}
//****************** You can add new functions below **********************//
function SearchByKeyHSid($xKey){
if ($this->SetQuery("select * from DetailScore where HSid= '$xKey'")){
return 1;
}else {
return 0;
}
}
function RSInsertOrUpdate($xKey){
$this->SetQuery("select count(*) as num from DetailScore where HSid = '$xKey'");
$result = $this->GetResult();
return $result['num'];
}
function RSDetailSAll($xKey){
$sql = "select * from DetailScore where HSid= '$xKey' order by DSid ASC ";
$this->SetQuery($sql);
}
function RSDetailSAllDESC($xKey){
$sql = "select * from DetailScore where HSid= '$xKey' order by DSid DESC ";
$this->SetQuery($sql);
}
//14/11/2006
function CountDetailSAllBetween2ValueOrderScoreDESC($xKey1,$xKey2,$xKey3){
//$sql = "select * from DetailScore where HSid= '$xKey1' and score between '$xKey2' and '$xKey3'";
//$this->SetQuery($sql);
$this->SetQuery("select count(*) as num from DetailScore where HSid= '$xKey1' and score between '$xKey2' and '$xKey3'");
if ($result=$this->GetResult()) {
return $result['num'];
}
}
function getMaxDSidByHSid($xKey){
$this->SetQuery("select max(DSid) as num from DetailScore where HSid = '$xKey'");
if ($result=$this->GetResult()) {
return $result['num'];
}
}
function getMinDSidByHSid($xKey){
$this->SetQuery("select min(DSid) as num from DetailScore where HSid = '$xKey'");
if ($result=$this->GetResult()) {
return $result['num'];
}
}
function getDStextBetweenCT($HSid,$score){
$this->SetQuery("select * from DetailScore where HSid = '$HSid'
and ( $score between CTFirst and CTLast or $score between CTLast and CTFirst ) ");
}
function getMaxScoreByAssid($assid){
$this->SetQuery("SELECT max(ods.CTLast) as num FROM
SectionAll osa
join SectionRQ osrq ON osrq.sectionRQid = osa.sectionRQid
join HeaderQuestion ohq ON ohq.sectionRQid = osa.sectionRQid
join HeaderScore ohs ON ohs.HSid = ohq.HSid
join DetailScore ods ON ods.HSid = ohs.HSid
WHERE osa.assid = $assid");
if ($result=$this->GetResult()) {
return $result['num'];
}
}
} //--End class DetailScore--
?>
|