File "fetch_data.php"

Full Path: C:/wamp64/www/PERSONAL/Personal/Areas/fetch_data.php
File size: 2.32 KB
MIME-type: text/x-php
Charset: utf-8

<?php
ini_set('display_errors', 0);
error_reporting(E_ALL);

include("../../connection.php");
$conn = $con;

if (!isset($conn) || !($conn instanceof mysqli)) {
    http_response_code(500);
    echo json_encode([
        "draw" => intval($_REQUEST['draw'] ?? 0),
        "recordsTotal" => 0, "recordsFiltered" => 0, "data" => [],
        "error" => "Conexión a la base de datos no establecida"
    ]);
    exit();
}

$request = $_REQUEST;

// Total de registros sin filtro
$totalData = mysqli_num_rows(mysqli_query($conn, "SELECT * FROM area"));

$sql = "SELECT * FROM area WHERE 1=1";

// Búsqueda
if (!empty($request['search']['value'])) {
    $search_value = mysqli_real_escape_string($conn, $request['search']['value']);
    $sql .= " AND area LIKE '%" . $search_value . "%'";
}

$filtered_query = mysqli_query($conn, $sql);
$totalFilter    = mysqli_num_rows($filtered_query);

// Ordenamiento
$order_dir = in_array(strtoupper($request['order'][0]['dir'] ?? 'ASC'), ['ASC', 'DESC'])
    ? $request['order'][0]['dir'] : 'ASC';
$sql .= " ORDER BY area " . $order_dir;

// Paginación
$start  = isset($request['start'])  ? intval($request['start'])  : 0;
$length = isset($request['length']) ? intval($request['length']) : 10;
$sql .= " LIMIT " . $start . ", " . $length;

$query = mysqli_query($conn, $sql);

if (!$query) {
    http_response_code(500);
    echo json_encode([
        "draw" => intval($request['draw'] ?? 0),
        "recordsTotal" => 0, "recordsFiltered" => 0, "data" => [],
        "error" => "Error en consulta: " . mysqli_error($conn)
    ]);
    exit();
}

$data = [];
while ($row = mysqli_fetch_assoc($query)) {
    $data[] = [
        $row['id'],                          // col 0 – id (oculto, para data-id)
        htmlspecialchars($row['area']),       // col 1 – Área visible
        // col 2 – Botones
        '<a href="javascript:void(0);" class="btn btn-sm btn-info p-2 m-1 editBtn" data-id="'   . $row['id'] . '">Editar</a> '
      . '<a href="javascript:void(0);" class="btn btn-sm btn-danger p-2 m-1 btnDelete" data-id="' . $row['id'] . '">Eliminar</a>'
    ];
}

echo json_encode([
    "draw"            => intval($request['draw']),
    "recordsTotal"    => intval($totalData),
    "recordsFiltered" => intval($totalFilter),
    "data"            => $data
]);
?>