$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) {