DATE_SUB( NOW () INTERVAL 2 WEEK) Failed in CakePHP

Written by James McDonald

April 21, 2013

I had this:

public function recent_history($weeks = null) {
	$this -> MapHistory -> recursive = 0;

	$this->paginate = array (
		'conditions' => array(
			'OR' => array(
				'MapHistory.date_returned >' => 'DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)',
				'MapHistory.date_loaned >' => DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)'
			)
	         ),
				'order' => array(
					'MapHistory.date_returned' => 'ASC',
					'MapHistory.date_loaned' => 'ASC'
					),
				'limit' => 50
			);

		$this -> set('mapHistories', $this -> paginate('MapHistory'));
}

But it was failing miserably because it was passing ‘DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)’ with the quotes and MYSQL wasn’t executing the statements.

Following this => http://stackoverflow.com/questions/9076152/way-for-using-date-subcurdate-interval-2-day-condition-in-cakephp

I just removed the array key => value stuff and placed it all in one set of single quotes and it worked fine:

public function recent_history($weeks = null) {
	$this -> MapHistory -> recursive = 0;

	$this->paginate = array (
		'conditions' => array(
			'OR' => array(
				'MapHistory.date_returned > DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)',
				'MapHistory.date_loaned > DATE_SUB( CURRENT_DATE(), INTERVAL 2 WEEK)'
			)
	         ),
				'order' => array(
					'MapHistory.date_returned' => 'ASC',
					'MapHistory.date_loaned' => 'ASC'
					),
				'limit' => 50
			);

		$this -> set('mapHistories', $this -> paginate('MapHistory'));
}

 

 

0 Comments

Submit a Comment

Your email address will not be published.

You May Also Like…

ZPL SBPL

Zebra Printer Language http://labelary.com/viewer.html The above website has a page where you can enter ZPL and it...

PHP Iterators

Just came across a Youtube talk "Iterators in PHP" by Jake Smith published in 2014 that steps through the many...

PHP array_map Multiple Arrays

array_map can take multiple arrays. I like how it starts mapping through them starting at the first element of each...