Madiha303
Madiha303

Reputation: 53

I want to select record based on the current date in codeigniter , but this query fails.

I have to select records based on current system date . If i hard code date value , query works fine but if i modify it to

$date1=date('Y-m-d H:i:s');
$res=$this->db_model->sql("SELECT *
FROM vbl_assignment
INNER JOIN vbl_student_course ON vbl_student_course.course_id = vbl_assignment.course_id
INNER JOIN vbl_course ON vbl_assignment.course_id = vbl_course.course_id
WHERE vbl_student_course.student_id =".$this->session->userdata('loggedinstudent')->student_id." AND vbl_assignment.accept_until_date > ".$date1);  

query fails. Any idea what is worng here.

Upvotes: 4

Views: 4877

Answers (5)

MJ X
MJ X

Reputation: 9044

When you are using codeigniter try to use active records inside your query it is better, faster, and secure. for comparing date with current date in active record put this code:

$this->db->where('date', 'CURDATE()', FALSE);

Upvotes: 2

user3256116
user3256116

Reputation: 1

$this->db->select();
        $this->db->from('post_job');
        $this->db->where("last_date >", 'CURDATE()', FALSE);
        $query=$this->db->get();        
        return $query->result();

Upvotes: 0

joni jones
joni jones

Reputation: 2995

You need escape $date1, something like '$date1' in query. And what format you use for date in database? Also is better solution use AR:

    $this->db->join('vbl_student_course', 
         'vbl_student_course.course_id = vbl_assignment.course_id');
    $this->db->join('vbl_course', 
         'vbl_assignment.course_id = vbl_course.course_id');
    $this->db->where(array(
        'vbl_student_course.student_id' => $this->session->
             userdata('loggedinstudent')->student_id,
        'vbl_assignment.accept_until_date >' => $date1
    ));

Upvotes: 0

ABorty
ABorty

Reputation: 2522

$date1=date('Y-m-d H:i:s');

$date1 is a string.you need to put the $date1 inside '' i.e '$date1' in the query.

Hope it will work for you.

Upvotes: 2

Nil'z
Nil'z

Reputation: 7475

Try:

$res=$this->db->query("SELECT *
FROM vbl_assignment
INNER JOIN vbl_student_course ON vbl_student_course.course_id = vbl_assignment.course_id
INNER JOIN vbl_course ON vbl_assignment.course_id = vbl_course.course_id
WHERE vbl_student_course.student_id =".$this->session->userdata('loggedinstudent')->student_id." AND vbl_assignment.accept_until_date > '".$date1."'");

Upvotes: 1

Related Questions