PHP - Variable no definida en una busqueda filtrada

 
Vista:

Variable no definida en una busqueda filtrada

Publicado por Sam (185 intervenciones) el 21/09/2015 12:10:25
Hola amigos/as, que tal, a ver si me pueden ayudar con esto:

Tengo un codigo , osea un buscador, yo le meto una palabra en el input y me busca en la bbdd y con dos filtros en forma de checkbox puedo filtrar dichas busquedas.

Y lo hace bien pero ... me da un mensaje de aviso que no logro saber como quitar.
dicho de otra forma si busco un producto ejem: "coches", y sabiendo que los dos filtros que tengo son : novedad" y "oferta", pues si elijo "oferta", me muestra la lista de resultados correspondiente.

Pero me sale un mensaje como que la variable de "novedad", osea el filtro no seleccionado, esta "indefinided".

Por que claro, los filtros se puede clickar ; uno , los dos , o ninguno.

Y no se como solucionar esto, osea el mensaje que sale diciendo que el filtro de la variable "no seleccionada esta indefinided", no aparezca:

Lo pondré con código:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="" method="" name="formulario_buscar" id="formulario_buscar">
 
	<input type="text" name="buscar" id="buscar" class="input_buscador"  placeholder="Buscar...">
 
	<br>
 
	<select name="el_nombre_tabla" id="nombre_tabla">
 
		<option value="tienda_galeria_1">tienda galería 1</option>
		<option value="tienda_galeria_2">tienda galería 2</option>
 
	</select>
 
	<br>
 
	<input type="checkbox" name="novedad" value="novedad" id="novedad"> Novedad<br>
 
	<input type="checkbox" name="oferta" value="oferta" id="oferta"> Oferta<br>
 
 
	<input type="submit" name="lupa" id="lupa" value="">
 
</form>



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
class ClaseDatosBusqueda
 
        {
            public function DatosBusqueda($nombre_tabla, $buscar, $filtro_novedad, $filtro_oferta)
 
                {
              echo $sql = "SELECT * FROM " . $nombre_tabla . "
                    
                    WHERE 
                    
                    (titulo like '%".$buscar."%' OR caracteristicas LIKE '%".$buscar."%')
                    
                    AND
 
                    estado='".$filtro_novedad."' OR
                    
                    estado='".$filtro_oferta."'
 
                    ORDER BY visitas DESC";
 
 
                    //$con = $this->ConectarBbdd();
 
                    $con = new Conectar();
                    $link=$con->ConectarBbdd();
 
                    $res = mysqli_query($link,$sql) or die ('Lo siento pero no selecciona los datos' . mysqli_error($link));
                    return $res;
                }
        }
 
 
    $llamada_ClaseDatosBusqueda = new ClaseDatosBusqueda();
 
 
 
 
 
    $buscar = strtolower($_POST['buscar']);
 
    $nombre_tabla = strtolower($_POST['nombre_tabla']);
 
 
$filtro_novedad = strtolower($_POST['novedad']);
 
$filtro_oferta = strtolower($_POST['oferta']);
 
 
    $res = $llamada_ClaseDatosBusqueda->DatosBusqueda($nombre_tabla, $buscar, $filtro_novedad, $filtro_oferta);



Y el mensaje que me da es:
Notice Undefined variable filtro_novedad in C:\xampp\htdocs\buscador.php on line 122
SELECT * FROM tienda_galeria_1 WHERE (titulo like '%coche%' OR caracteristicas LIKE '%blablabla%') AND estado='' OR estado='oferta' ORDER BY visitas DESC
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Variable no definida en una busqueda filtrada

Publicado por xve (6935 intervenciones) el 21/09/2015 16:36:26
Hola Sam, la variable $filtro_novedad viene de $_POST['novedad'], el cual viene del :
1
<input type="checkbox" name="novedad" value="novedad" id="novedad"> Novedad<br>

Si no marcas el check, esa variable no existe, ya que no se envía. Si tiene valor, se envía la cadena "on".
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