Exemplo n.º 1
0
 public function getPagi($sql)
 {
     $perpage = $_SESSION['user']['perpage'];
     $page = $_GET['p'];
     if ($page == '') {
         $page = 1;
     }
     $data = array();
     $sql = DB::prefix($sql);
     $sqlcount = substr($sql, strpos($sql, ' FROM '), strlen($sql));
     $tab = substr($sqlcount, strpos($sqlcount, ' ', 1), strpos($sqlcount, ' ', 6) - 1);
     if (strpos($sql, 'SELECT DISTINCT') !== false) {
         $sqlcount = 'SELECT COUNT(DISTINCT ' . $tab . '.id) ' . $sqlcount;
     } else {
         $sqlcount = 'SELECT count(*) ' . $sqlcount;
     }
     if (class_exists(PaginationWidget)) {
         PaginationWidget::$count = DB::getOne($sqlcount);
     }
     $sql = $sql . ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage . '';
     $q = DB::$pdo->query($sql) or die(DB::error($sql, debug_backtrace()));
     foreach ($q as $row) {
         $data[] = $row;
     }
     return $data;
 }
Exemplo n.º 2
0
    function getUndefinedDealers()
    {
        $data = array();
        //	INNER JOIN {{dealers_status}} ON {{dealers}}.status = {{dealers_status}}.id
        $sql = '
			SELECT {{dealers}}.* , {{dealers_status}}.shortname as statusname, {{dealers}}.id as dealer_id, (
				SELECT COUNT(*)
				FROM {{dealers_orders}}
				LEFT JOIN {{dealers_orders_status}} ON {{dealers_orders}}.status = {{dealers_orders_status}}.id
				WHERE {{dealers_orders}}.`dealer` = dealer_id AND {{dealers_orders_status}}.path = \'new\'
			) as new_orders
			FROM {{dealers}}
			LEFT JOIN {{dealers_status}} ON {{dealers}}.status = {{dealers_status}}.id
			WHERE {{dealers}}.active=1
			ORDER BY new_orders DESC
		';
        //getPagi не cпособен переварить запрос с подзапросами
        //вместо
        //$list=DB::getPagi($sql);
        //приходится делать так
        $dealers_count = DB::getOne('SELECT COUNT(*) FROM {{dealers}}');
        if (Funcs::$OneSSA) {
            $perpage = $_SESSION['user']['perpage'];
        } else {
            if ($_SESSION['perpage'][end(Funcs::$uri)]) {
                $perpage = $_SESSION['perpage'][end(Funcs::$uri)];
            } else {
                $perpage = 10;
            }
        }
        $page = intval($_GET['p']) > 0 ? $_GET['p'] : '1';
        if (class_exists(PaginationWidget)) {
            PaginationWidget::$count = $dealers_count;
        }
        $sql .= ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage;
        $list = DB::getAll($sql);
        foreach ($list as $item) {
            $item['stores_cnt'] = DealersStores::getCount($item['id']);
            $item['consignee_cnt'] = DealersConsignee::getCount($item['id']);
            $item['balance'] = self::getBalance($item['id']);
            $item['files'] = DealersFiles::getCountFiles($item['id']);
            $item['orders'] = DealersOrders::getOrdersCountByStatus($item['id'], 'new') . '/' . DealersOrders::getOrdersCountByStatus($item['id']);
            $data[] = $item;
        }
        return $data;
    }
Exemplo n.º 3
0
 public function getPagi($sql, $exec = 0)
 {
     $perpage = 0;
     if (Funcs::$OneSSA) {
         $perpage = $_SESSION['user']['perpage'];
     } else {
         if ($_SESSION['perpage'][end(Funcs::$uri)]) {
             $perpage = $_SESSION['perpage'][end(Funcs::$uri)];
         }
         if ($perpage == 0) {
             $perpage = $_SESSION['perpage'][reset(Funcs::$uri)];
         }
         if ($perpage == 0) {
             $perpage = 10;
         }
     }
     $page = $_GET['p'];
     if ($page == '') {
         $page = 1;
     }
     $data = array();
     $sql = DB::prefix($sql, $exec);
     $sqlcount = substr($sql, strpos($sql, ' FROM '), strlen($sql));
     $tab = substr($sqlcount, strpos($sqlcount, ' ', 1), strpos($sqlcount, ' ', 6) - 1);
     if (strpos($sql, 'SELECT DISTINCT') !== false) {
         $sqlcount = 'SELECT COUNT(DISTINCT ' . $tab . '.id) ' . $sqlcount;
     } else {
         $sqlcount = 'SELECT COUNT(*) ' . $sqlcount;
     }
     if (strpos($sqlcount, 'ORDER BY') !== false) {
         $sqlcount = substr($sqlcount, 0, strpos($sqlcount, 'ORDER BY'));
     }
     if (class_exists(PaginationWidget)) {
         PaginationWidget::$count = DB::getOne($sqlcount, 1);
     }
     $sql = $sql . ' LIMIT ' . ($page - 1) * $perpage . ',' . $perpage . '';
     $q = mysql_query($sql) or die('<b>Ошибка в SQL-запросе:</b> ' . $sql);
     while ($row = mysql_fetch_assoc($q)) {
         $data[] = $row;
     }
     return $data;
 }