File "fetch_data.php"

Full Path: C:/wamp64/www/Identifica_Piku/Personal/Ccostos/fetch_data.php
File size: 4.01 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// fetch_data.php - ADAPTADO PARA USAR $con EN LUGAR DE $conn

// Manejo de errores
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Incluir conexión
include("../../connection.php");

// Usar $con en lugar de $conn (ya que connection.php define $con)
$conn = $con; // Asignamos $con a $conn para mantener compatibilidad

// Verificar conexión
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();
}

// Continuar con el resto del código...
$request = $_REQUEST;
$col = array(
    0   =>  'Id_ccosto',
    1   =>  'D_ccosto',
    2   =>  'cargo'
);

$sql = "SELECT * FROM ccosto";
$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();
}

$totalData = mysqli_num_rows($query);
$totalFilter = $totalData;

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

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

$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 de filtro: " . mysqli_error($conn)
    ]);
    exit();
}

$totalFilter = mysqli_num_rows($query);

// Ordenamiento
$order_column = isset($col[$request['order'][0]['column']]) ? $col[$request['order'][0]['column']] : 'Id_ccosto';
$order_dir = in_array(strtoupper($request['order'][0]['dir']), ['ASC', 'DESC']) ? $request['order'][0]['dir'] : 'ASC';
$sql .= " ORDER BY " . $order_column . " " . $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 final: " . mysqli_error($conn)
    ]);
    exit();
}

$data = array();

while ($row = mysqli_fetch_array($query)) {
    $subdata = array();
    
    // COLUMNA 1: Aquí SÍ dejamos 'Id_ccosto' para que el usuario VEA el código (ej: 257P)
    $subdata[] = htmlspecialchars($row['Id_ccosto']); 
    
    // COLUMNA 2: Descripción
    $subdata[] = htmlspecialchars($row['D_ccosto']);
    
    // COLUMNA 3: Cargo
    $subdata[] = htmlspecialchars($row['cargo']);
    
    // COLUMNA 4: Botones
    // AQUÍ ESTÁ EL CAMBIO: Usamos $row['id'] (el número 1, 2, 3) para el data-id
    $subdata[] = '<a href="javascript:void(0);" class="btn btn-sm btn-info p-2 m-1 editBtn" data-id="' . htmlspecialchars($row['id']) . '">Editar</a> 
                  <a href="javascript:void(0);" class="btn btn-sm btn-danger p-2 m-1 btnDelete" data-id="' . htmlspecialchars($row['id']) . '">Eliminar</a>';
    
    $data[] = $subdata;
}

$json_data = array(
    "draw"              => intval($request['draw']),
    "recordsTotal"      => intval($totalData),
    "recordsFiltered"   => intval($totalFilter),
    "data"              => $data
);

echo json_encode($json_data);

// No cerrar conexión ya que $con podría ser usado por otros scripts
// mysqli_close($conn);
?>