53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
header('Content-Type:application/json; charset=utf-8');
|
|
ini_set('display_errors', 0);
|
|
error_reporting(0);
|
|
try {
|
|
require __DIR__ . '/../config.php';
|
|
$draw = intval($_GET['draw'] ?? 0);
|
|
$start = intval($_GET['start'] ?? 0);
|
|
$len = intval($_GET['length'] ?? 10);
|
|
$s = trim($_GET['search']['value'] ?? '');
|
|
|
|
$where = '';
|
|
$params = [];
|
|
if ($s) {
|
|
$where = "WHERE name LIKE :s";
|
|
$params[':s'] = "%$s%";
|
|
}
|
|
|
|
$total = $pdo->query("SELECT COUNT(*) FROM models")->fetchColumn();
|
|
|
|
$filtered = $total;
|
|
if ($where) {
|
|
$stmt = $pdo->prepare("SELECT COUNT(*) FROM models $where");
|
|
$stmt->execute($params);
|
|
$filtered = $stmt->fetchColumn();
|
|
}
|
|
|
|
$sql = "SELECT id, name, version, model_size, layers FROM models $where ORDER BY id DESC LIMIT :start, :len";
|
|
$stmt = $pdo->prepare($sql);
|
|
foreach ($params as $k => $v) {
|
|
$stmt->bindValue($k, $v);
|
|
}
|
|
$stmt->bindValue(':start', $start, PDO::PARAM_INT);
|
|
$stmt->bindValue(':len', $len, PDO::PARAM_INT);
|
|
$stmt->execute();
|
|
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
echo json_encode([
|
|
'draw' => $draw,
|
|
'recordsTotal' => $total,
|
|
'recordsFiltered' => $filtered,
|
|
'data' => $data
|
|
]);
|
|
} catch (Exception $e) {
|
|
echo json_encode([
|
|
'draw' => 0,
|
|
'recordsTotal' => 0,
|
|
'recordsFiltered' => 0,
|
|
'data' => [],
|
|
'error' => $e->getMessage()
|
|
]);
|
|
}
|