Duda paginacion y ordenacion de resultados
Publicado por Fulgencio (20 intervenciones) el 16/04/2021 21:14:34
Hola, tengo el codigo que os paso a continuación
Tengo dudas acerca de si hago bien la paginación y la ordenación
Tengo dudas acerca de si hago bien la paginación y la ordenación
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?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>
Valora esta pregunta


0