$_query = $callback($ds, $_row); $ds->exec($_query); $counts["insert"] += $ds->affectedRows(); } } } // Delete user logs entries $request = new CRequest(); $request->addWhereClause("user_log_id", "BETWEEN {$min} AND {$max}"); $request->addForceIndex("PRIMARY"); $request->addWhere($where); $query = $request->makeDelete($log); $ds->exec($query); $counts["insert"] = $ds->affectedRows(); } else { $query = $request->makeSelectCount($log); $counts["insert"] = $ds->loadResult($query); } //</editor-fold> $offset = $max + 1; // Stop auto if end is reached $log->loadMatchingObject("user_log_id DESC"); if ($log->_id < $offset) { $auto = 0; } // Création du template $smarty = new CSmartyDP(); $smarty->assign("log", $log); $smarty->assign("auto", $auto); $smarty->assign("execute", $execute); $smarty->assign("removers", $removers);
/** * Object count of a multiple list by an SQL request constructor using group-by statement * * @param array $where Array of where clauses * @param array|string $order Order statement * @param array|string $group Group by statement * @param array $ljoin Array of left join clauses * @param array $fields Append fields to the SELECT * @param array|string $index Force index * * @return self[] */ function countMultipleList($where = null, $order = null, $group = null, $ljoin = null, $fields = array(), $index = null) { if (!$this->_ref_module) { return null; } $request = new CRequest(); $request->addWhere($where); $request->addOrder($order); $request->addGroup($group); $request->addLJoin($ljoin); $request->addForceIndex($index); $ds = $this->_spec->ds; return $ds->loadList($request->makeSelectCount($this, $fields)); }
} $request = new CRequest(); $request->addTable($table); $request->addSelect("*"); $request->setLimit("{$start},{$count}"); if ($orderby) { $request->addOrder($orderby); } if ($where_column) { $where = array($where_column => $ds->prepare("=?", $where_value)); $request->addWhere($where); } $rows = $ds->loadList($request->makeSelect()); $request->setLimit(null); $request->order = null; $total = $ds->loadResult($request->makeSelectCount()); $counts = array(10, 50, 100, 200, 500, 1000, 5000); $smarty = new CSmartyDP(); $smarty->assign("rows", $rows); $smarty->assign("columns", $columns); $smarty->assign("tooltip", $tooltip); $smarty->assign("dsn", $dsn); $smarty->assign("table", $table); $smarty->assign("total", $total); $smarty->assign("start", $start); $smarty->assign("count", $count); $smarty->assign("counts", $counts); $smarty->assign("order_column", $order_column); $smarty->assign("order_way", $order_way); $smarty->assign("where_column", $where_column); $smarty->assign("where_value", $where_value);
/** @var CUser[] $users */ $users = array(); if ($group_similar && $group_similar !== 'no') { if ($group_similar === 'signature') { $groupby = "signature_hash"; } if ($group_similar === 'similar') { $groupby = "text, stacktrace_id, param_GET_id, param_POST_id"; } $request = new CRequest(); $request->addWhere($where); $request->addOrder($order); $request->addGroup($groupby); $request->setLimit($limit); $fields = array("GROUP_CONCAT(error_log_id) AS similar_ids", "GROUP_CONCAT(user_id) AS similar_user_ids", "GROUP_CONCAT(server_ip) AS similar_server_ips", "MIN(datetime) AS datetime_min", "MAX(datetime) AS datetime_max"); $error_logs_similar = $ds->loadList($request->makeSelectCount($error_log, $fields)); $request->setLimit(null); $total = count($ds->loadList($request->makeSelectCount($error_log, $fields))); $user_ids = array(); foreach ($error_logs_similar as $_info) { $similar_ids = explode(",", $_info["similar_ids"]); $error_log = new CErrorLog(); $error_log->load(reset($similar_ids)); $error_log->_similar_ids = $similar_ids; $error_log->_similar_count = $_info["total"]; $error_log->_datetime_min = $_info["datetime_min"]; $error_log->_datetime_max = $_info["datetime_max"]; $error_log->_similar_user_ids = array_unique(explode(",", $_info["similar_user_ids"])); $error_log->_similar_server_ips = array_unique(explode(",", $_info["similar_server_ips"])); $error_logs[] = $error_log; $user_ids = array_merge($user_ids, $error_log->_similar_user_ids);