gestor_dataset/gestor_dataset.php
2025-05-19 11:21:45 -04:00

118 lines
4.7 KiB
PHP

<?php include("includes/header.php"); ?>
<?php include("db.php"); ?>
<?php
// Verificar si se pasó el nombre de la tabla como parámetro
if (!isset($_GET['table'])) {
die("No se especificó una tabla.");
}
$table_name = $_GET['table'];
// Validar el nombre de la tabla (solo letras, números y guiones bajos)
if (!preg_match('/^[a-zA-Z0-9_]+$/', $table_name)) {
die("El nombre de la tabla contiene caracteres no permitidos.");
}
// Número de registros por página
$records_per_page = 25;
// Página actual (por defecto es 1)
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max($page, 1); // Asegurarse de que no sea menor que 1
// Calcular el OFFSET
$offset = ($page - 1) * $records_per_page;
// Consultar el número total de registros
$total_query = "SELECT COUNT(*) AS total FROM $table_name";
$total_result = mysqli_query($conn, $total_query);
$total_row = mysqli_fetch_assoc($total_result);
$total_records = $total_row['total'];
// Calcular el número total de páginas
$total_pages = ceil($total_records / $records_per_page);
// Consultar los datos con LIMIT y OFFSET
$query = "SELECT * FROM $table_name LIMIT $records_per_page OFFSET $offset";
$result_dataset = mysqli_query($conn, $query);
?>
<div class="container p-4">
<div class="row">
<!-- Botón para agregar dataset -->
<div class="col-12 mb-3">
<a href="add_dataset.php?table=<?php echo $table_name; ?>" class="btn btn-primary">
Add Dataset
</a>
</div>
<!-- Tabla con los datos -->
<div class="col-md-12">
<h5 class="text-center">Datos en la tabla: <?php echo $table_name; ?></h5>
<table id="example" class="table table-bordered">
<thead>
<tr>
<th>Instruction</th>
<th>Input</th>
<th>Output</th>
<th>Created At</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($result_dataset)) { ?>
<tr>
<td><?php echo $row['instruction']; ?></td>
<td><?php echo $row['input']; ?></td>
<td><?php echo $row['output']; ?></td>
<td><?php echo $row['created_ad']; ?></td>
<td>
<a href="edit.php?table=<?php echo $table_name; ?>&id=<?php echo $row['id']; ?>" class="btn btn-secondary m-2">
Editar
</a>
<a href="delete_dataset.php?table=<?php echo $table_name; ?>&id=<?php echo $row['id']; ?>" class="btn btn-danger" onclick="return confirm('¿Estás seguro de que deseas eliminar este registro?');">
Eliminar
</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<!-- Controles de paginación -->
<div class="d-flex justify-content-center mt-4">
<nav>
<ul class="pagination">
<!-- Botón "Anterior" -->
<li class="page-item <?php if ($page <= 1) echo 'disabled'; ?>">
<a class="page-link" href="gestor_dataset.php?table=<?php echo $table_name; ?>&page=<?php echo $page - 1; ?>">Anterior</a>
</li>
<!-- Menú desplegable para seleccionar página -->
<li class="page-item">
<select class="form-select" onchange="location = this.value;">
<?php for ($i = 1; $i <= $total_pages; $i++) { ?>
<option value="gestor_dataset.php?table=<?php echo $table_name; ?>&page=<?php echo $i; ?>" <?php if ($page == $i) echo 'selected'; ?>>
Página <?php echo $i; ?>
</option>
<?php } ?>
</select>
</li>
<!-- Botón "Siguiente" -->
<li class="page-item <?php if ($page >= $total_pages) echo 'disabled'; ?>">
<a class="page-link" href="gestor_dataset.php?table=<?php echo $table_name; ?>&page=<?php echo $page + 1; ?>">Siguiente</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<?php include("includes/footer.php"); ?>