$search = $_REQUEST['a'] == 'search' && $_REQUEST['q']; if ($search) { $qs += array('a' => $_REQUEST['a'], 'q' => $_REQUEST['q']); if (is_numeric($_REQUEST['q'])) { $qwhere .= " AND ticket.`number` LIKE '{$queryterm}%'"; } else { //Deep search! $queryterm = db_real_escape($_REQUEST['q'], false); //escape the term ONLY...no quotes. $qwhere .= ' AND ( ' . " cdata.subject LIKE '%{$queryterm}%'" . " OR thread.body LIKE '%{$queryterm}%'" . ' ) '; $deep_search = true; //Joins needed for search $qfrom .= ' LEFT JOIN ' . TICKET_THREAD_TABLE . ' thread ON (' . 'ticket.ticket_id=thread.ticket_id AND thread.thread_type IN ("M","R"))'; } } TicketForm::ensureDynamicDataView(); $total = db_count('SELECT count(DISTINCT ticket.ticket_id) ' . $qfrom . ' ' . $qwhere); $page = $_GET['p'] && is_numeric($_GET['p']) ? $_GET['p'] : 1; $pageNav = new Pagenate($total, $page, PAGE_LIMIT); $qstr = '&' . Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); $pageNav->setURL('tickets.php', $qs); //more stuff... $qselect .= ' ,count(attach_id) as attachments '; $qfrom .= ' LEFT JOIN ' . TICKET_ATTACHMENT_TABLE . ' attach ON ticket.ticket_id=attach.ticket_id '; $qgroup = ' GROUP BY ticket.ticket_id'; $query = "{$qselect} {$qfrom} {$qwhere} {$qgroup} ORDER BY {$order_by} {$order} LIMIT " . $pageNav->getStart() . "," . $pageNav->getLimit(); //echo $query; $res = db_query($query); $showing = $res && db_num_rows($res) ? $pageNav->showing() : ""; if (!$results_type) {