118 lines
4.7 KiB
PHP
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"); ?>
|