Example #1
0
function card_search($get, $connec = null)
{
    $data = new stdClass();
    if (isset($get['page'])) {
        $data->page = intval($get['page']);
        unset($get['page']);
    } else {
        $data->page = 1;
    }
    if (isset($get['limit'])) {
        $data->limit = intval($get['limit']);
        unset($get['limit']);
    } else {
        $data->limit = 30;
    }
    $get['name'] = card_name_sanitize($get['name']);
    $from = ($data->page - 1) * $data->limit;
    $where = '';
    if (isset($get['ext']) && $get['ext'] != '') {
        $select = 'SELECT `card`.*, `extension`.`se` FROM `card` LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`';
        $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )';
        // OR `extension`.`name` LIKE \''.$get['ext'].'%\' ;
        unset($get['ext']);
    } else {
        $select = 'SELECT * FROM `card` ';
        $where = '';
    }
    $order = ' ORDER BY `card`.`name`';
    if (isset($get['lang'])) {
        if ($get['lang'] != 'en') {
            $data->lang = $get['lang'];
            $select .= ' LEFT JOIN `cardname`
			ON `card`.`id` = `cardname`.`card_id`';
            $get['card_name'] = $get['name'];
            // Search in lang table
            $where .= ' AND `cardname`.`lang` = "' . $data->lang . '"';
            $order = ' ORDER BY `cardname`.`card_name`';
            unset($get['name']);
            // Search only in lang table
        }
        unset($get['lang']);
    }
    // Search part of word
    $query = $select . get2where($get, 'LIKE', '%', '%', 'card') . $where . $order;
    $result = query($query, 'Card listing', $connec);
    $data->num_rows = mysql_num_rows($result);
    $data->cards = array();
    while ($from > 0 && ($obj = mysql_fetch_object($result))) {
        $from--;
    }
    while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) {
        $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC";
        $result2 = query($query, 'Card\' extension', $connec);
        $obj->ext = array();
        while ($obj_ext = mysql_fetch_object($result2)) {
            $obj->ext[] = $obj_ext;
        }
        $data->cards[] = $obj;
    }
    return $data;
}
Example #2
0
function card_search($get, $connec = null)
{
    $data = new stdClass();
    if (isset($get['page'])) {
        $data->page = intval($get['page']);
        unset($get['page']);
    } else {
        $data->page = 1;
    }
    if (isset($get['limit'])) {
        $data->limit = intval($get['limit']);
        unset($get['limit']);
    } else {
        $data->limit = 30;
    }
    $firstresult = ($data->page - 1) * $data->limit;
    $get['name'] = card_name_sanitize($get['name']);
    // Start to build query
    $select = '`card`.*';
    $from = '`card`';
    $where = '';
    $order = '`card`.`name`';
    // Special fields that modify query instead of just beeing searched
    if (isset($get['ext']) && $get['ext'] != '') {
        $select .= ', `extension`.`se`';
        $from .= 'LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`';
        $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )';
        unset($get['ext']);
    }
    if (isset($get['lang'])) {
        if ($get['lang'] != 'en') {
            $data->lang = $get['lang'];
            $select .= ', `cardname`.`card_name` ';
            $from .= ' LEFT JOIN `cardname` ON `card`.`id` = `cardname`.`card_id`';
            $where .= ' AND `cardname`.`lang` = "' . $get['lang'] . '"';
            $where .= ' AND `cardname`.`card_name` LIKE "%' . $get['name'] . '%"';
            unset($get['name']);
            // Don't search that name in card table, it has been searched in lang table
            $order = '`cardname`.`card_name`';
        }
        unset($get['lang']);
    }
    // Normal fields
    $where .= get2where($get, 'LIKE', '%', '%', 'card');
    // Parts acquired, merge and query
    $query = "SELECT {$select} FROM {$from} WHERE 1 {$where} ORDER BY {$order}";
    $result = query($query, 'Card listing', $connec);
    $data->num_rows = mysql_num_rows($result);
    $data->cards = array();
    while ($firstresult > 0 && ($obj = mysql_fetch_object($result))) {
        $firstresult--;
    }
    while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) {
        $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC";
        $result2 = query($query, 'Card\' extension', $connec);
        $obj->ext = array();
        while ($obj_ext = mysql_fetch_object($result2)) {
            $obj->ext[] = $obj_ext;
        }
        $data->cards[] = $obj;
    }
    return $data;
}