Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Identifica_Piku
/
Personal
/
Ccostos
:
fetch_data.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?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); ?>