[ Foro de PHP ]

Duda paginacion y ordenacion de resultados

16-Apr-2021 21:23
Invitado (Fulgencio)
0 Respuestas

Hola, tengo el codigo que os paso a continuación
Tengo dudas acerca de si hago bien la paginación y la ordenación

<?php
session_start();
if($_SESSION["email"]){
echo "email: ".$_SESSION["email"];
}
?>
<html>
<head>
<style>
table th{
background-color: green;
}
form{
display: inline;
}
</style>
</head>
<body>
<?php

require "BaseDatos.php";
$conn=crearConexion();


//$orden="ProductID";//Orden por
if(isset($_GET["orden"])){
$orden=$_GET["orden"];
}else{
$orden="ProductID";
}
echo "orden:".$orden;


$numElementos = 10;

// Recogemos el parametro pag, en caso de que no exista, lo seteamos a 1
if (isset($_GET['pag'])) {
$pagina = $_GET['pag'];
} else {
$pagina = 1;
}

// (($pagina - 1) * $numElementos) me indica desde donde debemos empezar a mostrar registros
$sql = "SELECT * FROM product order by $orden LIMIT " . (($pagina - 1) * $numElementos) . "," . $numElementos;

// Ejecutamos la consulta
$resultado = mysqli_query($conn, $sql);

// Contamos el número total de registros
$sql = "SELECT count(*) as num_product FROM product";

// Ejecutamos la consulta
$resultadoMaximo = mysqli_query($conn, $sql);

// Recojo el numero de registros de forma rápida
$maximoElementos = mysqli_fetch_assoc($resultadoMaximo)['num_product'];

?>


<table border="1">
<tr>
<td><a href="ListaArticulo.php?orden=ProductID">ID</a></td>
<td><a href="ListaArticulo.php?orden=Name">Nombre</a></td>
<td><a href="ListaArticulo.php?orden=Cost">Coste</a></td>
<td><a href="ListaArticulo.php?orden=Price">Precio</a></td>
<td><a href="ListaArticulo.php?orden=CategoryID">Categoría</a></td>
</tr>

<?php


while ($row = mysqli_fetch_assoc($resultado)) {
echo "<tr>";
echo "<td>" . $row['ProductID'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['Cost'] . "</td>";
echo "<td>" . $row['Price'] . "</td>";
echo "<td>" . $row['CategoryID'] . "</td>";
echo "<td>";
?>
<form action="formArticulo.php" method="post">
<input name="id" type="hidden" value="<?php echo $row["ProductID"]?>">
<input name="action" type="hidden" value="modificar">
<input type="submit" value="Modificar"></input>
</form>
<form action="formArticulo.php" method="post">
<input name="id" type="hidden" value="<?php echo $row["ProductID"]?>">
<input name="action" type="hidden" value="eliminar">
<input type="submit" value="Eliminar"></input>
</form>

<?php

echo "</td>";
echo "</tr>";
}

?>

</table>

<div>
<?php
// Si existe el parametro pag
if (isset($_GET['pag'])) {
// Si pag es mayor que 1, ponemos un enlace al anterior
if ($_GET['pag'] > 1) {
?>
<a href="ListaArticulo.php?pag=<?php echo $_GET['pag'] - 1; ?>"><button>Anterior</button></a>
<?php
// Sino deshabilito el botón
} else {
?>
<a href="#"><button disabled>Anterior</button></a>
<?php
}
?>

<?php
} else {
// Sino deshabilito el botón
?>
<a href="#"><button disabled>Anterior</button></a>
<?php
}



// Si existe la paginacion
if (isset($_GET['pag'])) {
// Si el numero de registros actual es superior al maximo
if ((($pagina) * $numElementos) < $maximoElementos) {
?>
<a href="ListaArticulo.php?pag=<?php echo $_GET['pag'] + 1; ?>"><button>Siguiente</button></a>
<?php
// Sino deshabilito el botón
} else {
?>
<a href="#"><button disabled>Siguiente</button></a>
<?php
}

?>

<?php
// Sino deshabilito el botón
} else {
?>
<a href="ListaArticulo.php?pag=2"><button>Siguiente</button></a>
<?php
}


?>


</div>
</body>
</html>




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)