gestor_models/ajax/get_tables.php
2025-06-14 17:01:29 -04:00

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 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()
]);
}