%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php
Class Quiz_model extends CI_Model
{
Public function __construct(){
parent::__construct();
$db2 = $this->load->database('readerdb', TRUE);
}
function quiz_list($limit, $list_uid='', $ex_gid = ''){
$logged_in=$this->session->userdata('logged_in');
if($logged_in['su']=='0'){
$gid=$logged_in['gid'];
if(!empty($ex_gid)){
$oldgArray[] = $gid;
$records = array_merge($ex_gid,$oldgArray);
$whrQcon = "(";
if(is_array($records)){
$idx = 0;
foreach($records as $r){
$whrQcon = $whrQcon . 'gids like concat("%'. $r .'%")' ;
if($idx + 1 < count($records)){
$whrQcon = $whrQcon . " OR ";
}
$idx = $idx + 1;
}
$whrQcon = $whrQcon . " )";
}
$this->db->where($whrQcon);
} else {
$where="FIND_IN_SET('".$gid."', gids)";
$this->db->where($where);
}
}
if($list_uid!=''){
$this->db->where('savsoft_quiz.admin_id',$list_uid);
}
if($this->input->post('search') && $logged_in['su']>='1'){
$search=$this->input->post('search');
// $this->db->or_where('quid',$search);
//$this->db->or_like('quiz_name',$search);
$where = ' ( description like "%'.$search.'%" OR quiz_name like "%'.$search.'%" OR quid like "%'.$search.'%" )';
$this->db->where($where);
}
if($this->input->post('quiz_type')!='' && $logged_in['su']>='1'){
$quiz_type = $this->input->post('quiz_type');
$this->db->where('savsoft_quiz.quiz_type',$quiz_type);
}
$this->db->limit($this->config->item('number_of_rows'),$limit);
$this->db->order_by('start_date','desc');
$this->db->order_by('quid','desc');
$query=$this->db->get('savsoft_quiz');
//echo $this->db->last_query(); die;
return $query->result_array();
}
function latest_quiz_list($list_uid=''){
//$db2 = $this->load->database('readerdb', TRUE);
$logged_in=$this->session->userdata('logged_in');
if($logged_in['su']=='0'){
$gid=$logged_in['gid'];
$where="FIND_IN_SET('".$gid."', gids)";
$this->db->where($where);
}
if($list_uid!=''){
$this->db->where('savsoft_quiz.admin_id',$list_uid);
}
if($this->input->post('search') && $logged_in['su']=='1'){
$search=$this->input->post('search');
$this->db->or_where('quid',$search);
$this->db->or_like('quiz_name',$search);
$this->db->or_like('description',$search);
}
$this->db->where('savsoft_quiz.quiz_type','1');
$this->db->limit(22);
//$this->db->order_by('start_date','desc');
$this->db->order_by('quid','desc');
$query=$this->db->get('savsoft_quiz');
//echo $this->db->last_query(); die;
return $query->result_array();
}
function get_quiz_summary($uid='')
{
//$db2 = $this->load->database('readerdb', TRUE);
if($uid>0){
$query=$this->db->query("SELECT count(distinct uid) as total, quiz_name,rs.quid FROM `savsoft_result` rs JOIN savsoft_quiz sq ON sq.quid=rs.quid WHERE sq.admin_id = '".$uid."' AND rs.result_status IN('Pass','Fail') GROUP by rs.quid");
$results = $query->result_array();
} else {
$query=$this->db->query("SELECT count(distinct uid) as total, quiz_name,rs.quid FROM `savsoft_result` rs JOIN savsoft_quiz sq ON sq.quid=rs.quid WHERE rs.result_status IN('Pass','Fail') GROUP by rs.quid");
$results = $query->result_array();
}
$response = array();
foreach($results as $val) {
$response[$val['quid']] = $val;
}
return $response;
}
function get_total_qcl($quid){
$resp = '';
if(!empty($quid)){
$query=$this->db->query("select sum(noq) as total from savsoft_qcl where quid=$quid");
$resp = $query->row_array();
}
return $resp;
}
function get_quiz_stats($uid='')
{
//$db2 = $this->load->database('readerdb', TRUE);
if($uid>0){
$query=$this->db->query("SELECT count(distinct uid) as total, quiz_name,rs.quid FROM `savsoft_result` rs JOIN savsoft_quiz sq ON sq.quid=rs.quid WHERE sq.admin_id = '".$uid."' GROUP by rs.quid");
$results = $query->result_array();
} else {
$query=$this->db->query("SELECT count(distinct uid) as total, quiz_name,rs.quid FROM `savsoft_result` rs JOIN savsoft_quiz sq ON sq.quid=rs.quid GROUP by rs.quid");
$results = $query->result_array();
}
$response = array();
foreach($results as $val) {
$response[$val['quid']] = $val;
}
return $response;
}
function num_quiz($uid=''){
//$db2 = $this->load->database('readerdb', TRUE);
if($uid!=''){
$this->db->where('savsoft_quiz.admin_id',$uid);
}
$query=$this->db->get('savsoft_quiz');
return $query->num_rows();
}
/*
* function : insert_quiz
*/
function insert_quiz(){
$userdata=array(
'quiz_name'=>$this->input->post('quiz_name'),
'description'=>$this->input->post('description'),
'start_date'=>strtotime($this->input->post('start_date')),
'end_date'=>strtotime($this->input->post('end_date')),
'duration'=>$this->input->post('duration'),
'maximum_questions'=>$this->input->post('maximum_questions'),
'time_per_question'=>$this->input->post('time_per_question'),
'maximum_all_sub_questions'=>$this->input->post('maximum_all_sub_questions'),
'maximum_attempts'=>$this->input->post('maximum_attempts'),
'total_quiz_questions'=>$this->input->post('maximum_questions'),
'pass_percentage'=>$this->input->post('pass_percentage'),
'correct_score'=>$this->input->post('correct_score'),
'show_result'=>$this->input->post('show_result'),
'display_leaderboard'=>$this->input->post('display_leaderboard'),
'incorrect_score'=>$this->input->post('incorrect_score'),
'ip_address'=>$this->input->post('ip_address'),
'view_answer'=>$this->input->post('view_answer'),
'camera_req'=>$this->input->post('camera_req'),
'quiz_type'=>$this->input->post('quiz_type'),
'gids'=>implode(',',$this->input->post('gids')),
'admin_id'=>$this->input->post('admin_id'),
'question_selection'=>$this->input->post('question_selection')
);
if($this->input->post('gen_certificate')){
$userdata['gen_certificate']=$this->input->post('gen_certificate');
}
if($this->input->post('certificate_text')){
$userdata['certificate_text']=$this->input->post('certificate_text');
}
$this->db->insert('savsoft_quiz',$userdata);
//echo $this->db->last_query(); die;
$quid = $this->db->insert_id();
return $quid;
}
function insert_basic_detail(){
$userdata=array(
'full_name'=>$this->input->post('full_name'),
'school_id'=>$this->input->post('school_id'),
'department_id'=>$this->input->post('department_id'),
'semester'=>$this->input->post('semester'),
'section'=>$this->input->post('student_section'),
'qid'=>$this->input->post('quid'),
'user_id'=>$this->input->post('user_id'),
'createdon'=>date('Y-m-d H:i:s')
);
// Check User Already Register Then Update the Details
$qid = $this->input->post('quid');
$user_id = $this->input->post('user_id');
$query = $this->db->query("select * from quiz_basic_details where qid = '$qid' AND user_id = '$user_id' AND status='1' AND is_deleted='0'");
$results = $query->row_array();
if(empty($results)) {
$this->db->insert('quiz_basic_details',$userdata);
//echo $this->db->last_query(); die;
//echo $quid = $this->db->insert_id(); die;
} else {
$this->db->where('id',$results['id']);
$this->db->update('quiz_basic_details',$userdata);
//echo $this->db->last_query(); die;
}
return $qid;
}
function copy_quiz($quizArray)
{
$userdata=array(
'quiz_name'=>$quizArray['quiz_name'].' Copy',
'description'=>$quizArray['description'],
'start_date'=>strtotime(date('Y-m-d H:i:s')),
'end_date'=>strtotime(date('Y-m-d H:i:s', strtotime('+1 days'))),
'duration'=>$quizArray['duration'],
'form_display'=>$quizArray['form_display'],
'maximum_questions'=>$quizArray['maximum_questions'],
'maximum_all_sub_questions'=>$quizArray['maximum_all_sub_questions'],
'time_per_question'=>$quizArray['time_per_question'],
'maximum_attempts'=>$quizArray['maximum_attempts'],
'total_quiz_questions'=>$quizArray['total_quiz_questions'],
'pass_percentage'=>$quizArray['pass_percentage'],
'show_result'=>$quizArray['show_result'],
'display_leaderboard'=>$quizArray['display_leaderboard'],
'correct_score'=>$quizArray['correct_score'],
'quiz_type'=>$quizArray['quiz_type'],
'incorrect_score'=>$quizArray['incorrect_score'],
'ip_address'=>$quizArray['ip_address'],
'view_answer'=>$quizArray['view_answer'],
'camera_req'=>$quizArray['camera_req'],
'admin_id'=>$quizArray['admin_id'],
'qids'=>$quizArray['qids'],
'question_selection'=>$quizArray['question_selection'],
'gids'=>''
);
if($quizArray['gen_certificate']){
$userdata['gen_certificate']=$quizArray['gen_certificate'];
}
if($quizArray['certificate_text']){
$userdata['certificate_text']=$quizArray['certificate_text'];
}
$pQuizId = $quizArray['quid'];
$this->db->insert('savsoft_quiz',$userdata);
$quid = $this->db->insert_id();
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz',$userdata);
$quiz=$query->row_array();
if($quiz['question_selection']=='1'){
$this->db->where('quid',$quid);
$this->db->delete('savsoft_qcl');
$this->db->where('quid',$pQuizId);
$query=$this->db->get('savsoft_qcl');
$qclResults=$query->result_array();
foreach($qclResults as $key => $row){
$userdata = array(
'quid'=>$quid,
'cid'=>$row['cid'],
'lid'=>$row['lid'],
'tqpc'=>$row['tqpc'],
'rc_answer'=>'0',
'noq'=>$row['noq'],
'limit_start'=>$row['limit_start'],
'limit_end'=>$row['limit_end']
);
$this->db->insert('savsoft_qcl',$userdata);
}
$userdata=array('noq'=>$quizArray['noq'],'copy_quid'=>$pQuizId);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
}
return $quid;
}
function update_quiz($quid)
{
$userdata=array(
'quiz_name'=>$this->input->post('quiz_name'),
'description'=>$this->input->post('description'),
'start_date'=>strtotime($this->input->post('start_date')),
'end_date'=>strtotime($this->input->post('end_date')),
'duration'=>$this->input->post('duration'),
'form_display'=>$this->input->post('form_display'),
'maximum_questions'=>$this->input->post('maximum_questions'),
'maximum_all_sub_questions'=>$this->input->post('maximum_all_sub_questions'),
'time_per_question'=>$this->input->post('time_per_question'),
'maximum_attempts'=>$this->input->post('maximum_attempts'),
'total_quiz_questions'=>$this->input->post('maximum_questions'),
'pass_percentage'=>$this->input->post('pass_percentage'),
'show_result'=>$this->input->post('show_result'),
'display_leaderboard'=>$this->input->post('display_leaderboard'),
'correct_score'=>$this->input->post('correct_score'),
'quiz_type'=>$this->input->post('quiz_type'),
'incorrect_score'=>$this->input->post('incorrect_score'),
'ip_address'=>$this->input->post('ip_address'),
'view_answer'=>$this->input->post('view_answer'),
'camera_req'=>$this->input->post('camera_req'),
'gids'=>implode(',',$this->input->post('gids'))
);
if($this->input->post('gen_certificate')){
$userdata['gen_certificate']=$this->input->post('gen_certificate');
}
if($this->input->post('certificate_text')){
$userdata['certificate_text']=$this->input->post('certificate_text');
}
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz',$userdata);
$quiz=$query->row_array();
if($quiz['question_selection']=='1'){
$this->db->where('quid',$quid);
$this->db->delete('savsoft_qcl');
foreach($_POST['cid'] as $ck => $val){
if(isset($_POST['noq'][$ck])){
if($_POST['noq'][$ck] >= '1'){
$userdata = array(
'quid'=>$quid,
'cid'=>$val,
'lid'=>$_POST['lid'][$ck],
'tqpc'=>$_POST['tqpc'][$ck],
'rc_answer'=>'0',
'noq'=>$_POST['noq'][$ck],
'limit_start'=>$_POST['limit_start'][$ck],
'limit_end'=>$_POST['limit_end'][$ck]
);
$this->db->insert('savsoft_qcl',$userdata);
}
}
}
$userdata=array(
'noq'=>array_sum($_POST['noq'])
);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
}
return $quid;
}
function get_questions($qids){
//$db2 = $this->load->database('readerdb', TRUE);
if($qids == ''){
$qids=0;
}else{
$qids=$qids;
}
/*
if($cid!='0'){
$db2->where('savsoft_qbank.cid',$cid);
}
if($lid!='0'){
$db2->where('savsoft_qbank.lid',$lid);
}
*/
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid join savsoft_level on savsoft_level.lid=savsoft_qbank.lid where savsoft_qbank.qid in ($qids) order by FIELD(savsoft_qbank.qid,$qids)");
return $query->result_array();
}
function get_single_questions($qids){
if($qids>0){
$query=$this->db->query("select question from savsoft_qbank where savsoft_qbank.qid =$qids limit 1");
return $query->row_array();
}
}
function get_options($qids){
//$db2 = $this->load->database('readerdb', TRUE);
$resp = array();
if($qids<>''){
$query=$this->db->query("select oid,qid,q_option,q_option_match,score from savsoft_options where qid in ($qids) order by FIELD(savsoft_options.qid,$qids)");
$resp = $query->result_array();
}
return $resp;
}
function get_options_list($qids){
//$db2 = $this->load->database('readerdb', TRUE);
$results = array();
if($qids<>''){
$query=$this->db->query("select oid,qid,q_option,q_option_match,score from savsoft_options where qid in ($qids) order by FIELD(savsoft_options.qid,$qids)");
$results = array();
foreach($query->result_array() as $row) {
$results[] = $row;
}
}
return $results;
}
function up_question($quid,$qid){
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$result=$query->row_array();
$qids=$result['qids'];
if($qids==""){
$qids=array();
}else{
$qids=explode(",",$qids);
}
$qids_new=array();
foreach($qids as $k => $qval){
if($qval == $qid){
$qids_new[$k-1]=$qval;
$qids_new[$k]=$qids[$k-1];
}else{
$qids_new[$k]=$qval;
}
}
$qids=array_filter(array_unique($qids_new));
$qids=implode(",",$qids);
$userdata=array(
'qids'=>$qids
);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
}
function down_question($quid,$qid){
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$result=$query->row_array();
$qids=$result['qids'];
if($qids==""){
$qids=array();
}else{
$qids=explode(",",$qids);
}
$qids_new=array();
foreach($qids as $k => $qval){
if($qval == $qid){
$qids_new[$k]=$qids[$k+1];
$kk=$k+1;
$kv=$qval;
}else{
$qids_new[$k]=$qval;
}
}
$qids_new[$kk]=$kv;
$qids=array_filter(array_unique($qids_new));
$qids=implode(",",$qids);
$userdata=array(
'qids'=>$qids
);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
}
function get_qcl($quid){
//$db2 = $this->load->database('readerdb', TRUE);
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_qcl');
return $query->result_array();
}
function remove_qid($quid,$qid){
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$quiz=$query->row_array();
$new_qid=array();
foreach(explode(',',$quiz['qids']) as $key => $oqid){
if($oqid != $qid){
$new_qid[]=$oqid;
}
}
$noq=count($new_qid);
$userdata=array(
'qids'=>implode(',',$new_qid),
'noq'=>$noq
);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
return true;
}
function add_qid($quid,$qid){
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$quiz=$query->row_array();
$new_qid=array();
$new_qid[]=$qid;
foreach(explode(',',$quiz['qids']) as $key => $oqid){
if($oqid != $qid){
$new_qid[]=$oqid;
}
}
$new_qid=array_filter(array_unique($new_qid));
$noq=count($new_qid);
$userdata=array(
'qids'=>implode(',',$new_qid),
'noq'=>$noq
);
$this->db->where('quid',$quid);
$this->db->update('savsoft_quiz',$userdata);
return true;
}
function get_school($quid){
$db2 = $this->load->database('readerdb', TRUE);
$db2->where('status','1');
$query=$db2->get('tbl_schools');
return $query->result_array();
}
function get_department($school_id = '0'){
$db2 = $this->load->database('readerdb', TRUE);
if($school_id>0){
$db2->where('school_id',$school_id);
}
$db2->where('status','1');
$query=$db2->get('tbl_mentee_departments ');
return $query->result_array();
}
function get_quiz($quid){
//$db2 = $this->load->database('readerdb', TRUE);
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
return $query->row_array();
}
function remove_quiz($quid){
$this->db->where('quid',$quid);
if($this->db->delete('savsoft_quiz')){
return true;
}else{
return false;
}
}
function count_result($quid,$uid)
{
$db2 = $this->load->database('readerdb', TRUE);
$db2->where('quid',$quid);
$db2->where('uid',$uid);
$db2->where('result_status<>"Open"');
$query=$db2->get('savsoft_result');
return $query->num_rows();
}
function insert_result_old($quid,$uid){
// get quiz info
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$quiz=$query->row_array();
//print_r($quiz); die;
if($quiz['question_selection']=='0'){
// get questions
$noq=$quiz['noq'];
// Get random Question Id's
$qids=explode(',',$quiz['qids']);
$categories=array();
$category_range=array();
$i=0;
$wqids=implode(',',$qids);
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where qid in ($wqids) ORDER BY FIELD(qid,$wqids)");
$questions=$query->result_array();
foreach($questions as $qk => $question){
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
} else {
// randomaly select qids
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_qcl');
$qcl=$query->result_array();
$qids=array();
$categories=array();
$category_range=array();
foreach($qcl as $k => $val){
$cid=$val['cid'];
$lid=$val['lid'];
//$noq=$quiz['noq'];
if($quiz['maximum_all_sub_questions']==1){
$noq = $val['tqpc'];
} else {
$noq = $quiz['maximum_questions'];
}
$i=0;
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where savsoft_qbank.cid='$cid' and lid='$lid' ORDER BY RAND() limit $noq ");
$questions=$query->result_array();
foreach($questions as $qk => $question){
$qids[]=$question['qid'];
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
}
}
$zeros=array();
foreach($qids as $qidval){
$zeros[]=0;
}
$userdata=array(
'quid'=>$quid,
'uid'=>$uid,
'r_qids'=>implode(',',$qids),
'categories'=>implode(',',$categories),
'category_range'=>implode(',',$category_range),
'start_time'=>time(),
'individual_time'=>implode(',',$zeros),
'score_individual'=>implode(',',$zeros),
'attempted_ip'=>$_SERVER['REMOTE_ADDR']
);
if($this->session->userdata('photoname')){
$photoname=$this->session->userdata('photoname');
$userdata['photo']=$photoname;
}
$this->db->insert('savsoft_result',$userdata);
$rid=$this->db->insert_id();
return $rid;
}
/*
* Function : insert_result
*
*/
function insert_result($quid,$uid){
// get quiz info
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$quiz=$query->row_array();
//print_r($quiz); die;
if($quiz['question_selection']=='0'){
// get questions
$noq=$quiz['noq'];
// Get random Question Id's
$qids=explode(',',$quiz['qids']);
$categories=array();
$category_range=array();
$i=0;
$wqids=implode(',',$qids);
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where qid in ($wqids) ORDER BY FIELD(qid,$wqids)");
$questions=$query->result_array();
foreach($questions as $qk => $question){
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
} else {
// randomaly select qids
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_qcl');
$qcl=$query->result_array();
$qids=array();
$categories=array();
$category_range=array();
foreach($qcl as $k => $val){
$cid = $val['cid'];
$lid = $val['lid'];
$rca = $val['rc_answer'];
$lstart = $val['limit_start'];
$lend = $val['limit_end'];
if($quiz['maximum_all_sub_questions']==1){
$noq = $val['tqpc'];
} else {
$noq = $quiz['maximum_questions'];
}
$i=0;
if($rca=='1'){
$query=$this->db->query("select * from savsoft_rcqbank join savsoft_category on savsoft_category.cid = savsoft_rcqbank.cid where savsoft_rcqbank.cid='$cid' and lid='$lid' ORDER BY RAND() limit $noq");
$questions = $query->result_array();
} else {
if($lend>0) {
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where savsoft_qbank.cid='$cid' and lid='$lid' ORDER BY qid limit $lstart , $lend");
$results = $query->result_array();
$questions = $this->resultToArray($results,$noq);
} else {
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where savsoft_qbank.cid='$cid' and lid='$lid' ORDER BY RAND() limit $noq");
$questions = $query->result_array();
}
}
//print_r($questions); die;
$k=0;
foreach($questions as $qk => $question){
if($rca=='1')
{
$rc_qid = $question['qid'];
$rcQuestion = $question['question'];
// Get All question of Same Batch
if($rc_qid>0){
$rcqidArray[$k]= $rc_qid;
$k++;
$rcquery=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where rc_qid='$rc_qid' ORDER BY RAND()");
$rcquestions = $rcquery->result_array();
foreach($rcquestions as $rc){
$qids[]=$rc['qid'];
if(!in_array($rc['category_name'],$categories)){
$categories[]=$rc['category_name'];
$category_range[]=$i+$noq;
}
}
}
} else {
$qids[]=$question['qid'];
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
}
}
}
$zeros=array();
foreach($qids as $qidval){
$zeros[]=0;
}
$userdata=array(
'quid'=>$quid,
'uid'=>$uid,
'r_qids'=>implode(',',$qids),
'categories'=>implode(',',$categories),
'category_range'=>implode(',',$category_range),
'start_time'=>time(),
'rc_qid'=>implode(',',$rcqidArray),
'individual_time'=>implode(',',$zeros),
'score_individual'=>implode(',',$zeros),
'attempted_ip'=>$_SERVER['REMOTE_ADDR']
);
if($this->session->userdata('photoname')){
$photoname=$this->session->userdata('photoname');
$userdata['photo']=$photoname;
}
$this->db->insert('savsoft_result',$userdata);
//echo $this->db->last_query(); die;
$rid=$this->db->insert_id();
return $rid;
}
/*
* Function : resultToArray
*/
function resultToArray($result, $numRows='1') {
$rows = array();
foreach($result as $row) {
$rows[] = $row;
}
$price = array_column($rows, 'rc_qid');
array_multisort($price, SORT_DESC, $rows);
shuffle($rows);
if ( $numRows > 0 ) {
$rows = array_splice($rows, 0, $numRows);
}
return $rows;
}
/*
* Function : quizsample_result
*/
function quizsample_result($quid,$uid){
// get quiz info
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_quiz');
$quiz=$query->row_array();
//print_r($quiz); die;
if($quiz['question_selection']=='0'){
// get questions
$noq=$quiz['noq'];
// Get random Question Id's
$qids=explode(',',$quiz['qids']);
$categories=array();
$category_range=array();
$i=0;
$wqids=implode(',',$qids);
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where qid in ($wqids) ORDER BY FIELD(qid,$wqids)");
$questions=$query->result_array();
foreach($questions as $qk => $question){
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
} else {
// randomaly select qids
$this->db->where('quid',$quid);
$query=$this->db->get('savsoft_qcl');
$qcl=$query->result_array();
$qids=array();
$categories=array();
$category_range=array();
foreach($qcl as $k => $val){
$cid = $val['cid'];
$lid = $val['lid'];
$rca = $val['rc_answer'];
$lstart = $val['limit_start'];
$lend = $val['limit_end'];
if($quiz['maximum_all_sub_questions']==1){
$noq = $val['tqpc'];
} else {
$noq = $quiz['maximum_questions'];
}
$i=0;
if($rca=='1'){
$query=$this->db->query("select * from savsoft_rcqbank join savsoft_category on savsoft_category.cid = savsoft_rcqbank.cid where savsoft_rcqbank.cid='$cid' and lid='$lid' ORDER BY RAND() limit $noq");
$questions = $query->result_array();
} else {
$questions = '';
if($lend>0) {
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where savsoft_qbank.cid='$cid' and lid='$lid' ORDER BY qid limit $lstart , $lend");
//echo $this->db->last_query(); die;
$results = $query->result_array();
$questions = $this->resultToArray($results,$noq);
} else {
$query=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where savsoft_qbank.cid='$cid' and lid='$lid' ORDER BY RAND() limit $noq");
$questions = $query->result_array();
}
}
//print_r($questions); die;
$k=0;
foreach($questions as $qk => $question){
if($rca=='1'){
$rc_qid = $question['qid'];
$rcQuestion = $question['question'];
// Get All question of Same Batch
if($rc_qid>0){
$rcqidArray[$k]= $rc_qid;
$k++;
$rcquery=$this->db->query("select * from savsoft_qbank join savsoft_category on savsoft_category.cid=savsoft_qbank.cid where rc_qid='$rc_qid' ORDER BY RAND()");
$rcquestions = $rcquery->result_array();
foreach($rcquestions as $rc){
$qids[]=$rc['qid'];
if(!in_array($rc['category_name'],$categories)){
$categories[]=$rc['category_name'];
$category_range[]=$i+$noq;
}
}
}
} else {
$qids[]=$question['qid'];
if(!in_array($question['category_name'],$categories)){
$categories[]=$question['category_name'];
$category_range[]=$i+$noq;
}
}
}
}
}
$zeros=array();
foreach($qids as $qidval){
$zeros[]=0;
}
$userdata=array(
'quid'=>$quid,
'uid'=>$uid,
'r_qids'=>implode(',',$qids),
'categories'=>implode(',',$categories),
'category_range'=>implode(',',$category_range),
'start_time'=>time(),
'rc_qid'=>implode(',',$rcqidArray),
'individual_time'=>implode(',',$zeros),
'score_individual'=>implode(',',$zeros),
'attempted_ip'=>$_SERVER['REMOTE_ADDR']
);
if($this->session->userdata('photoname')){
$photoname=$this->session->userdata('photoname');
$userdata['photo']=$photoname;
}
$this->db->insert('quizsample_results',$userdata);
$rid=$this->db->insert_id();
return $rid;
}
/*
* function : rcanswerQuestionList
*/
function rcanswerQuestionList($rqids){
$response = array();
if(!empty($rqids)) {
$result_open=$this->lang->line('open');
$query=$this->db->query("select qid,question from savsoft_rcqbank where savsoft_rcqbank.qid IN($rqids)");
$result = $query->result_array();
foreach($result as $row){
$response[$row['qid']] = $row['question'];
}
}
return $response;
}
function open_result($quid,$uid){
$db2 = $this->load->database('readerdb', TRUE);
$result_open=$this->lang->line('open');
$query=$db2->query("select * from savsoft_result where savsoft_result.result_status='$result_open' AND quid='$quid' AND uid='$uid'");
$result = $query->result_array();
if($query->num_rows() >= '1'){
$result=$query->row_array();
return $result['rid'];
}else{
return '0';
}
}
function samplequiz_result($rid){
//$db2 = $this->load->database('readerdb', TRUE);
$query=$this->db->query("select * from quizsample_results join savsoft_quiz on quizsample_results.quid=savsoft_quiz.quid where quizsample_results.rid='$rid' ");
return $query->row_array();
}
function quiz_result($rid){
//$db2 = $this->load->database('readerdb', TRUE);
$query=$this->db->query("select * from savsoft_result join savsoft_quiz on savsoft_result.quid=savsoft_quiz.quid where savsoft_result.rid='$rid' ");
return $query->row_array();
}
function saved_answers($rid){
//$db2 = $this->load->database('readerdb', TRUE);
$query=$this->db->query("select * from savsoft_answers where savsoft_answers.rid='$rid' ");
return $query->result_array();
}
/*
* function : get_basic_detail
*
*/
function get_basic_detail($quid, $user_id){
//$db2 = $this->load->database('readerdb', TRUE);
$query=$this->db->query("select * from quiz_basic_details where qid='$quid' AND user_id='$user_id' AND status='1' AND is_deleted='0'");
$result = $query->row_array();
if($result['full_name']!='' && $result['school_id']!='' && $result['department_id']!='') {
return true;
} else {
return false;
}
}
function assign_score($rid,$qno,$score){
$qp_score=$score;
$query=$this->db->query("select * from savsoft_result join savsoft_quiz on savsoft_result.quid=savsoft_quiz.quid where savsoft_result.rid='$rid' ");
$quiz=$query->row_array();
$score_ind=explode(',',$quiz['score_individual']);
$score_ind[$qno]=$score;
$r_qids=explode(',',$quiz['r_qids']);
$correct_score=$quiz['correct_score'];
$incorrect_score=$quiz['incorrect_score'];
$manual_valuation=0;
foreach($score_ind as $mk => $score){
if($score == 1){
$marks+=$correct_score;
}
if($score == 2){
$marks+=$incorrect_score;
}
if($score == 3){
$manual_valuation=1;
}
}
$percentage_obtained=($marks/$quiz['total_quiz_questions'])*100;
if($percentage_obtained >= $quiz['pass_percentage']){
$qr=$this->lang->line('pass');
}else{
$qr=$this->lang->line('fail');
}
$userdata=array(
'score_individual'=>implode(',',$score_ind),
'score_obtained'=>$marks,
'percentage_obtained'=>$percentage_obtained,
'manual_valuation'=>$manual_valuation
);
if($manual_valuation == 1){
$userdata['result_status']=$this->lang->line('pending');
}else{
$userdata['result_status']=$qr;
}
$this->db->where('rid',$rid);
$this->db->update('savsoft_result',$userdata);
// question performance
$qp=$r_qids[$qno];
$crin="";
if($$qp_score=='1'){
$crin=", no_time_corrected=(no_time_corrected +1)";
}else if($$qp_score=='2'){
$crin=", no_time_incorrected=(no_time_incorrected +1)";
}
$query_qp="update savsoft_qbank set $crin where qid='$qp' ";
$this->db->query($query_qp);
}
function submit_result(){
$logged_in=$this->session->userdata('logged_in');
$email=$logged_in['email'];
$rid=$this->session->userdata('rid');
$query=$this->db->query("select * from savsoft_result join savsoft_quiz on savsoft_result.quid=savsoft_quiz.quid where savsoft_result.rid='$rid' ");
$quiz=$query->row_array();
$score_ind=explode(',',$quiz['score_individual']);
$r_qids=explode(',',$quiz['r_qids']);
$qids_perf=array();
$marks=0;
$correct_score=$quiz['correct_score'];
$incorrect_score=$quiz['incorrect_score'];
$total_time=array_sum(explode(',',$quiz['individual_time']));
$manual_valuation=0;
foreach($score_ind as $mk => $score){
$qids_perf[$r_qids[$mk]]=$score;
if($score == 1){
$marks+=$correct_score;
}
if($score == 2){
$marks+=$incorrect_score;
}
if($score == 3){
$manual_valuation=1;
}
}
$percentage_obtained=($marks/$quiz['total_quiz_questions'])*100;
if($percentage_obtained >= $quiz['pass_percentage']){
$qr=$this->lang->line('pass');
}else{
$qr=$this->lang->line('fail');
}
$userdata=array(
'total_time'=>$total_time,
'end_time'=>time(),
'score_obtained'=>$marks,
'percentage_obtained'=>$percentage_obtained,
'manual_valuation'=>$manual_valuation
);
if($manual_valuation == 1){
$userdata['result_status']=$this->lang->line('pending');
}else{
$userdata['result_status']=$qr;
}
$this->db->where('rid',$rid);
// print_r($userdata); die;
$this->db->update('savsoft_result',$userdata);
// Save Result In Leaderboard
$this->add_leaderboard($rid);
foreach($qids_perf as $qp => $qpval){
$crin="";
if($qpval=='0'){
$crin=", no_time_unattempted=(no_time_unattempted +1) ";
}else if($qpval=='1'){
$crin=", no_time_corrected=(no_time_corrected +1)";
}else if($qpval=='2'){
$crin=", no_time_incorrected=(no_time_incorrected +1)";
}
$mdate = date('Y-m-d H:i:s');
$query_qp="update savsoft_qbank set no_time_served=(no_time_served +1), mdate='$mdate' $crin where qid='$qp' ";
$this->db->query($query_qp);
}
if($this->config->item('allow_result_email')){
$this->load->library('email');
$query = $this -> db -> query("select savsoft_result.*,savsoft_users.*,savsoft_quiz.* from savsoft_result, savsoft_users, savsoft_quiz where savsoft_users.uid=savsoft_result.uid and savsoft_quiz.quid=savsoft_result.quid and savsoft_result.rid='$rid'");
$qrr=$query->row_array();
if($this->config->item('protocol')=="smtp"){
$config['protocol'] = 'smtp';
$config['smtp_host'] = $this->config->item('smtp_hostname');
$config['smtp_user'] = $this->config->item('smtp_username');
$config['smtp_pass'] = $this->config->item('smtp_password');
$config['smtp_port'] = $this->config->item('smtp_port');
$config['smtp_timeout'] = $this->config->item('smtp_timeout');
$config['mailtype'] = $this->config->item('smtp_mailtype');
$config['starttls'] = $this->config->item('starttls');
$config['newline'] = $this->config->item('newline');
$this->email->initialize($config);
}
$toemail=$qrr['email'];
$fromemail=$this->config->item('fromemail');
$fromname=$this->config->item('fromname');
$subject=$this->config->item('result_subject');
$message=$this->config->item('result_message');
$subject=str_replace('[email]',$qrr['email'],$subject);
$subject=str_replace('[first_name]',$qrr['first_name'],$subject);
$subject=str_replace('[last_name]',$qrr['last_name'],$subject);
$subject=str_replace('[quiz_name]',$qrr['quiz_name'],$subject);
$subject=str_replace('[score_obtained]',$qrr['score_obtained'],$subject);
$subject=str_replace('[percentage_obtained]',$qrr['percentage_obtained'],$subject);
$subject=str_replace('[current_date]',date('Y-m-d H:i:s',time()),$subject);
$subject=str_replace('[result_status]',$qrr['result_status'],$subject);
$message=str_replace('[email]',$qrr['email'],$message);
$message=str_replace('[first_name]',$qrr['first_name'],$message);
$message=str_replace('[last_name]',$qrr['last_name'],$message);
$message=str_replace('[quiz_name]',$qrr['quiz_name'],$message);
$message=str_replace('[score_obtained]',$qrr['score_obtained'],$message);
$message=str_replace('[percentage_obtained]',$qrr['percentage_obtained'],$message);
$message=str_replace('[current_date]',date('Y-m-d H:i:s',time()),$message);
$message=str_replace('[result_status]',$qrr['result_status'],$message);
$this->email->to($toemail);
$this->email->from($fromemail, $fromname);
$this->email->subject($subject);
$this->email->message($message);
if(!$this->email->send()){
//print_r($this->email->print_debugger());
}
}
return true;
}
/*
* function : add_leaderboard
*/
function add_leaderboard($rid){
$logged_in=$this->session->userdata('logged_in');
$query = $this -> db -> query("select savsoft_result.*,savsoft_users.*,savsoft_quiz.* from savsoft_result, savsoft_users, savsoft_quiz where savsoft_users.uid=savsoft_result.uid and savsoft_quiz.quid=savsoft_result.quid and savsoft_result.rid='$rid'");
$qrr=$query->row_array();
$quid = $qrr['quid'];
$uid = $qrr['uid'];
$score_obtained = $qrr['score_obtained'];
$percentage_obtained = $qrr['percentage_obtained'];
$total_time = $qrr['total_time'];
$query =$this->db->query("select * from savsoft_leaderboard where uid='$uid' AND quid = '$quid'");
$result =$query->row_array();
$userdata='';
if(empty($result))
{
$userdata=array(
'uid'=>$uid,
'quid'=>$quid,
'rid'=>$rid,
'score_obtained'=>$score_obtained,
'total_time'=>$total_time,
'percentage_obtained'=>$percentage_obtained,
'profile_image'=>$logged_in['profie_image'],
'attempted_ip'=>$_SERVER['REMOTE_ADDR'],
'createdon'=>date('Y-m-d H:i:s')
);
$this->db->insert('savsoft_leaderboard',$userdata);
// echo $this->db->last_query(); die;
} else {
$userdata=array(
'rid'=>$rid,
'total_time'=>$total_time,
'score_obtained'=>$score_obtained,
'percentage_obtained'=>$percentage_obtained,
'attempted_ip'=>$_SERVER['REMOTE_ADDR'],
'profile_image'=>$logged_in['profie_image'],
'modifiedon'=>date('Y-m-d H:i:s')
);
$this->db->where('uid',$uid);
$this->db->where('quid',$quid);
// print_r($userdata); die;
if($score_obtained>$result['score_obtained'] && $percentage_obtained>$result['percentage_obtained']){
$this->db->update('savsoft_leaderboard',$userdata);
}
//echo $this->db->last_query(); die;
}
}
function insert_answer(){
$rid=$_POST['rid'];
$srid=$this->session->userdata('rid');
$logged_in=$this->session->userdata('logged_in');
$uid=$logged_in['uid'];
if($srid != $rid){
return "Something wrong";
}
$query=$this->db->query("select correct_score,incorrect_score,r_qids,score_individual from savsoft_result join savsoft_quiz on savsoft_result.quid=savsoft_quiz.quid where savsoft_result.rid='$rid' ");
$quiz=$query->row_array();
$correct_score=$quiz['correct_score'];
$incorrect_score=$quiz['incorrect_score'];
$qids=explode(',',$quiz['r_qids']);
$vqids=$quiz['r_qids'];
$correct_incorrect=explode(',',$quiz['score_individual']);
// remove existing answers
$this->db->where('rid',$rid);
$this->db->delete('savsoft_answers');
foreach($_POST['answer'] as $ak => $answer){
// multiple choice single answer
if($_POST['question_type'][$ak] == '1' || $_POST['question_type'][$ak] == '2'){
$qid=$qids[$ak];
$query=$this->db->query(" select oid,qid,q_option,q_option_match,score from savsoft_options where qid='$qid' ");
$options_data=$query->result_array();
$options=array();
foreach($options_data as $ok => $option){
$options[$option['oid']]=$option['score'];
}
$attempted=0;
$marks=0;
foreach($answer as $sk => $ansval){
if($options[$ansval] <= 0 ){
$marks+=-1;
}else{
$marks+=$options[$ansval];
}
$userdata=array(
'rid'=>$rid,
'qid'=>$qid,
'uid'=>$uid,
'q_option'=>$ansval,
'score_u'=>$options[$ansval]
);
$this->db->insert('savsoft_answers',$userdata);
$attempted=1;
}
if($attempted==1){
if($marks==1){
$correct_incorrect[$ak]=1;
}else{
$correct_incorrect[$ak]=2;
}
}else{
$correct_incorrect[$ak]=0;
}
}
// short answer
if($_POST['question_type'][$ak] == '3'){
$qid=$qids[$ak];
$query=$this->db->query(" select oid,qid,q_option,q_option_match,score from savsoft_options where qid='$qid' ");
$options_data=$query->row_array();
$options_data=explode(',',$options_data['q_option']);
$noptions=array();
foreach($options_data as $op){
$noptions[]=strtoupper(trim($op));
}
$attempted=0;
$marks=0;
foreach($answer as $sk => $ansval){
if($ansval != ''){
if(in_array(strtoupper(trim($ansval)),$noptions)){
$marks=1;
}else{
$marks=0;
}
$attempted=1;
$userdata=array(
'rid'=>$rid,
'qid'=>$qid,
'uid'=>$uid,
'q_option'=>$ansval,
'score_u'=>$marks
);
$this->db->insert('savsoft_answers',$userdata);
}
}
if($attempted==1){
if($marks==1){
$correct_incorrect[$ak]=1;
}else{
$correct_incorrect[$ak]=2;
}
}else{
$correct_incorrect[$ak]=0;
}
}
// long answer
if($_POST['question_type'][$ak] == '4'){
$attempted=0;
$marks=0;
$qid=$qids[$ak];
foreach($answer as $sk => $ansval){
if($ansval != ''){
$userdata=array(
'rid'=>$rid,
'qid'=>$qid,
'uid'=>$uid,
'q_option'=>$ansval,
'score_u'=>0
);
$this->db->insert('savsoft_answers',$userdata);
$attempted=1;
}
}
if($attempted==1){
$correct_incorrect[$ak]=3;
}else{
$correct_incorrect[$ak]=0;
}
}
// match
if($_POST['question_type'][$ak] == '5'){
$qid=$qids[$ak];
$query=$this->db->query(" select oid,qid,q_option,q_option_match,score from savsoft_options where qid='$qid' ");
$options_data=$query->result_array();
$noptions=array();
foreach($options_data as $op => $option){
$noptions[]=$option['q_option'].'___'.$option['q_option_match'];
}
$marks=0;
$attempted=0;
foreach($answer as $sk => $ansval){
if($ansval != '0'){
$mc=0;
if(in_array($ansval,$noptions)){
$marks+=1/count($options_data);
$mc=1/count($options_data);
}else{
$marks+=0;
$mc=0;
}
$userdata=array(
'rid'=>$rid,
'qid'=>$qid,
'uid'=>$uid,
'q_option'=>$ansval,
'score_u'=>$mc
);
$this->db->insert('savsoft_answers',$userdata);
$attempted=1;
}
}
if($attempted==1){
if($marks==1){
$correct_incorrect[$ak]=1;
}else{
$correct_incorrect[$ak]=2;
}
}else{
$correct_incorrect[$ak]=0;
}
}
}
$userdata=array(
'score_individual'=>implode(',',$correct_incorrect),
'individual_time'=>$_POST['individual_time'],
);
$this->db->where('rid',$rid);
$this->db->update('savsoft_result',$userdata);
return true;
}
function set_ind_time(){
$rid=$this->session->userdata('rid');
$userdata=array(
'individual_time'=>$_POST['individual_time'],
);
$this->db->where('rid',$rid);
$this->db->update('savsoft_result',$userdata);
return true;
}
/*
* Function validate_qregistration
*/
function validate_qregistration($uid = '' , $qid = '' ){
if(!empty($uid)){
$this->db->where('uid',$uid);
}
if(!empty($qid)){
$this->db->where('qid',$qid);
}
$this->db->order_by('id','desc');
$query=$this->db->get('savsoft_quiz_registration');
//echo $this->db->last_query(); die;
return $query->result_array();
}
/*
* Function quiz_registration
*/
function quiz_registration($params, $tbl_name='savsoft_quiz_registration'){
//validate registered or not
$resp = $this->validate_qregistration($params['uid'],$params['qid']);
if(count($resp)==0) {
if($params!='' && $tbl_name!='') {
$userdata=array(
'qid'=>$params['qid'],
'uid'=>$params['uid'],
'gid'=>$params['gid'],
'admin_id'=>$params['admin_id'],
'page_key'=>$params['page_key'],
'visitor_ip'=>$_SERVER["REMOTE_ADDR"],
'modified_on'=>date('Y-m-d H:i:s'),
'created'=>date('Y-m-d H:i:s')
);
if($this->db->insert($tbl_name,$userdata)){
return true;
}else{
return false;
}
}
}
}
function getGroupList($uid='')
{
if($uid!=''){
$this->db->where('savsoft_quiz_registration.uid',$uid);
}
$this->db->where('savsoft_quiz_registration.status','1');
$this->db->where('savsoft_quiz_registration.`created` > NOW() - INTERVAL 48 HOUR');
$query=$this->db->get('savsoft_quiz_registration');
$gids = array();
$result = $query->result_array();
foreach($result as $row) {
$gids[] = $row['gid'];
}
$finalGArray = implode(',',$gids);
$gidsList = array_filter(explode(',', $finalGArray));
return $gidsList;
}
function getGroupQuizLists($uid='', $quid='')
{
$this->db->where('savsoft_quiz_registration.uid',$uid);
$this->db->where('savsoft_quiz_registration.qid',$quid);
$query=$this->db->get('savsoft_quiz_registration');
//echo $this->db->last_query(); die;
$result = $query->row_array();
$gids = $result['gid'];
return $gids;
}
function getAssignNewGroupQuiz($uid='', $gids='')
{
$this->db->where('savsoft_quiz_registration.uid',$uid);
//$this->db->where('savsoft_quiz_registration.qid',$quid);
$this->db->where_in('savsoft_quiz_registration.gid',$gids);
$query=$this->db->get('savsoft_quiz_registration');
//echo $this->db->last_query(); die;
$result = $query->row_array();
$gid = $result['gid'];
return $gid;
}
function getAssignNewQuiz($uid='', $quid='')
{
$this->db->where('savsoft_quiz_registration.uid',$uid);
$this->db->where('savsoft_quiz_registration.qid',$quid);
$query=$this->db->get('savsoft_quiz_registration');
//echo $this->db->last_query(); die;
$result = $query->row_array();
$qid = $result['qid'];
return $qid;
}
/*
* Function generate_report
*/
function generate_missed_report($quizArray)
{
$db2 = $this->load->database('readerdb', TRUE);
$listGids = $quizArray['gids'];
$quid = $quizArray['quid'];
$quizName = $quizArray['quiz_name'];
$sql = "SELECT su.*, group_name from savsoft_users as su JOIN savsoft_group as sg ON su.gid= sg.gid WHERE su.gid IN(".$listGids.") AND su.status='1' AND verify_code='0' AND su.uid NOT IN( SELECT uid from savsoft_result Where quid='".$quid."') limit 1500";
$query = $db2->query($sql);
//echo $db2->last_query(); die;
return $query->result_array();
}
function generate_report($quid,$gid, $admin_id=''){
$db2 = $this->load->database('readerdb', TRUE);
$logged_in=$this->session->userdata('logged_in');
$uid=$logged_in['uid'];
$date1=$this->input->post('date1');
$date2=$this->input->post('date2');
if($quid != '0'){
$db2->where('savsoft_result.quid',$quid);
}
$db2->order_by('rid','desc');
$db2->join('savsoft_users','savsoft_users.uid=savsoft_result.uid');
$db2->join('savsoft_group','savsoft_group.gid=savsoft_users.gid');
$db2->join('savsoft_quiz','savsoft_quiz.quid=savsoft_result.quid');
$query=$db2->get('savsoft_result');
//echo $db2->last_query(); die;
return $query->result_array();
}
public function getAllRecords($tbl_name='savsoft_quiz', $col = ' * ', $condition=null, $order_by = NULL,$limit=NULL, $start=NULL)
{
$this->db->select($col);
// $this->db->where('is_deleted', '0');
if(!empty($condition))
{
foreach($condition as $key=>$val) {
$this->db->where($key, $val);
}
}
if(!empty($order_by)){
foreach($order_by as $key=>$val) {
$this->db->order_by($key, $val);
}
}
if ($limit !== null && $start !== null) {
$query = $this->db->get($tbl_name,$limit, $start);
} else {
$query = $this->db->get($tbl_name);
}
//echo $this->db->last_query(); die;
return $query->result_array();
}
/*
* Function : getSingleRecord
*/
public function getSingleRecord($tbl_name='savsoft_quiz', $col = ' * ', $condition=null)
{
$this->db->select($col);
if(!empty($condition))
{
foreach($condition as $key=>$val) {
$this->db->where($key, $val);
}
}
$query = $this->db->get($tbl_name);
//echo $this->db->last_query(); die;
return $query->row_array();
}
public function saveinfo($tbl_name='', $post)
{
$this->db->insert($tbl_name, $post);
//echo $this->db->last_query(); die;
return $this->db->insert_id();
}
public function updateinfo($tbl_name='', $post, $field, $value)
{
$this->db->where($field, $value);
if (!$this->db->update($tbl_name, $post)) {
log_message('error', print_r($this->db->error(), true));
}
//echo $this->db->last_query(); die;
}
/*
* function getQuizAlertUserlist
*/
public function getQuizAlertUserlist($quid, $listGids)
{
if($quid>0){
$query=$this->db->query("SELECT su.*, group_name from savsoft_users as su JOIN savsoft_group as sg ON su.gid= sg.gid WHERE su.gid IN(".$listGids.") AND su.status='1' AND verify_code='0' AND su.uid NOT IN( SELECT uid from savsoft_result Where quid='".$quid."') limit 1000");
return $query->result_array();
}
}
}
?>