All pastes #800893 Raw Edit

Anonymous

public php v1 · immutable
#800893 ·published 2007-11-28 20:49 UTC
rendered paste body
				if ( preg_match('`[%\*_"]`is', $this->Session->read('Browse.tags')) ) {					// Format before querying for categories.					$this->data['Browse']['tags'] = str_replace('_', '%', str_replace('*', '%', $this->data['Browse']['tags']));				}				$query = '';				foreach ( explode(' ', $this->Session->read('Browse.tags')) as $key => $value ) {					$query .= '`Category`.`name` LIKE \''.$value.'\' OR ';				}				$query = substr($query, 0, -3);				$categories = $this->Category->findAll($query, '`Category`.`id`');								$query = '';				$bitValue = (pow(2, count($categories))-1);				$query = 'HAVING BIT_OR(1 << FIELD( `categories`.`id`, ';				foreach ( $categories as $key => $value ) {					$query .= $categories[$key]['Category']['id'].', ';				}				$query = substr($query, 0, -2);				$query .= ')-1) = '.$bitValue;				// Find all work ID's				$query = '				SELECT DISTINCT 					`works`.`id`				FROM 					`categories` 					INNER JOIN 						`works_categories` 						ON 							`categories`.`id` = `works_categories`.`category_id`					INNER JOIN						`works`						ON							`works_categories`.`work_id` = `works`.`id`					GROUP BY 						`works`.`id`					'.$query;								$result = $this->Category->query($query);				$query = '';				foreach ( $result as $key => $value ) {					$query .= '`Work`.`id` = '.$value['works']['id'].' OR ';				}				$query = substr($query, 0, -4);				if ( !$query ) {					$this->set('works', array());				} else {					$this->set('works', $this->paginate('Work', $query));				}