PHP - Duda paginacion y ordenacion de resultados

 
Vista:

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Duda paginacion y ordenacion de resultados

Publicado por Mauro (1034 intervenciones) el 17/04/2021 14:37:06
Hola Fulgencio!

¿Cuál es la duda que tienes? ¿Te está dando un resultado diferente al que buscas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 33
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Duda paginacion y ordenacion de resultados

Publicado por Fulgencio (20 intervenciones) el 17/04/2021 15:06:48
Que no sé si la paginación y la ordenación la hace bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Duda paginacion y ordenacion de resultados

Publicado por Mauro (1034 intervenciones) el 18/04/2021 16:10:50
¿Qué significa "la hace bien"? ¿Puedes mostrar una captura de pantalla del resultado que obtienes y explicar qué es lo que querrías obtener?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar