PHP - Filtrado por Categoria no funciona

 
Vista:
sin imagen de perfil
Val: 22
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Filtrado por Categoria no funciona

Publicado por Garikoitz (13 intervenciones) el 05/05/2018 21:40:37
Hola, ante todo muchas gracias a todo el mundo que me quiera ayudar.

Vereis, no soy programador ni he estudiado nada relacionado, tan sólo intento aprender por mi mismo. Con el método de investigar mucho prueba y error y como no con la ayuda de los foros.

No consigo que el Filtro por Categoria haga su funcion de filtrar.

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
161
162
163
164
165
166
167
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
 
        <title>Calendario de Disfrute</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.css"/>
        <link href="offcanvas.css" rel="stylesheet">
    </head>
 
    <body class="bg-light">
 
        <main role="main" class="container">
 
        <div class="my-3 p-3 bg-white rounded box-shadow">
            <h6 class="border-bottom border-gray pb-2 mb-0">Calendario de Modelo de Trabajo y Vacaciones</h6>
            <br>
             <div id="filtros">
            <form action="index.php" method="post">
            <div class="form-group">
            <label for="filtro_categoria">Seleccciona una Categoría:</label>
            <select class="form-control" id="filtro_categoria">
                <option value="todos">Todas las Categorías</option>
                <option value="modelo_el">Modelo de Trabajo E.L.</option>
                <option value="vacaciones_el">Vacaciones E.L.</option>
                <option value="festivo">Festivo</option>
                <option value="modelo_operarios">Modelo de Trabajo Operarios</option>
                <option value="vacaciones_operarios">Vacaciones Operarios</option>
            </select>
            </div>
            <button type="submit" class="btn btn-primary">Filtrar</button>
            </form>
            </div>
 
 
            <br>
            <table id="tabla" class="display" style="width:100%">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Nombre</th>
                        <th>Categoria</th>
                        <th>Días</th>
                    </tr>
                </thead>
                <tbody>
                    <?php
                        $mysqli = new mysqli('localhost', 'root', '', 'raul_raul');
                        $mysqli->query("SET NAMES 'utf8'");
                        if ($mysqli->connect_errno)
                        {
                            echo "Lo sentimos, este sitio web está experimentando problemas.";
                            echo "Error: Fallo al conectarse a MySQL debido a: \n";
                            echo "Errno: " . $mysqli->connect_errno . "\n";
                            echo "Error: " . $mysqli->connect_error . "\n";
                            exit;
                        }
 
 
                        if(isset($_POST['filtro_categoria'])){
                        switch($_POST['filtro_categoria']){
                        case "todos":
                            $sql = "SELECT  m2n76_icagenda_events.id, m2n76_icagenda_events.title as title, m2n76_icagenda_events.dates, m2n76_icagenda_category.title as cat
                                FROM m2n76_icagenda_events inner join m2n76_icagenda_category on m2n76_icagenda_events.catid = m2n76_icagenda_category.id
                                WHERE m2n76_icagenda_category.id IN (1,8,9,11,12)";
                            break;
                        case "modelo_el":
                            $sql = "select * from m2n76_icagenda_events where catid=1";
                            break;
                        case "vacaciones_el":
                            $sql = "select * from m2n76_icagenda_events where catid=8";
                            break;
                        case "festivo":
                            $sql = "select * from m2n76_icagenda_events where catid=9";
                            break;
                        case "modelo_operarios":
                            $sql = "select * from m2n76_icagenda_events where catid=11";
                            break;
                        case "vacaciones_operarios":
                            $sql = "select * from m2n76_icagenda_events where catid=12";
                            break;
                        }
                        }else
 
                        {
 
 
                        $sql = "SELECT  m2n76_icagenda_events.id, m2n76_icagenda_events.title as title, m2n76_icagenda_events.dates, m2n76_icagenda_category.title as cat
                                FROM m2n76_icagenda_events inner join m2n76_icagenda_category on m2n76_icagenda_events.catid = m2n76_icagenda_category.id
                                WHERE m2n76_icagenda_category.id IN (1,8,9,11,12)";
 
                        if (!$resultado = $mysqli->query($sql))
                        {
                            echo "Lo sentimos, este sitio web está experimentando problemas.";
                            echo "Error: La ejecución de la consulta falló debido a: \n";
                            echo "Query: " . $sql . "\n";
                            echo "Errno: " . $mysqli->errno . "\n";
                            echo "Error: " . $mysqli->error . "\n";
                            exit;
                        }
 
                        }
 
                        $num = $resultado->num_rows;
 
                        while ($reg = $resultado->fetch_assoc())
                        {
 
                            echo "<tr>";
                            echo "<td>".$reg['id']."</td>";
                            echo "<td>".$reg['title']."</td>";
                            echo "<td>".$reg['cat']."</td>";
                            echo "<td>".$reg['dates']."</td>";
                            echo "</tr>";
                        }
 
                        $resultado->free();
                        $mysqli->close();
                    ?>
                </tbody>
            </table>
 
            <button type="button" class="btn btn-success" id="btnExportar" name="btnExportar" onclick="descargarExcel()">Exportar a Excel</button>
        </div>
        </main>
        <!-- Bootstrap core JavaScript
        ================================================== -->
        <!-- Placed at the end of the document so the pages load faster -->
        <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
        <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
        <script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.js"></script>
 
        <script>
 
            $(document).ready(function() {
                $('#tabla').DataTable( {
                    "language": {
                        "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Spanish.json"
                    },
                    "lengthMenu": [[25, 50, -1],[25, 50, "Todos"]]
                } );
            });
        </script>
        <script>
            function descargarExcel(){
                //Creamos un Elemento Temporal en forma de enlace
                var tmpElemento = document.createElement('a');
                // obtenemos la información desde el div que lo contiene en el html
                // Obtenemos la información de la tabla
                var data_type = 'data:application/vnd.ms-excel';
                var tabla_div = document.getElementById('tabla');
                var tabla_html = tabla_div.outerHTML.replace(/ /g, '%20');
                tmpElemento.href = data_type + ', ' + tabla_html;
                //Asignamos el nombre a nuestro EXCEL
                tmpElemento.download = 'Nombre_De_Mi_Excel.xls';
                // Simulamos el click al elemento creado para descargarlo
                tmpElemento.click();
            }
        </script>
    </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