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; }
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; }
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; }