PHP - Buscar dos registros al mismo tiempo

 
Vista:
sin imagen de perfil

Buscar dos registros al mismo tiempo

Publicado por Zair Estevan (7 intervenciones) el 23/04/2021 03:13:14
Hola, tengo un buscador para mi pagina web, quiero realizar algo como un "Filtro de búsqueda", al querer buscar el genero y nombre de un libro a la vez, no me sale ningún registro, pero si busco solo el nombre o el genero si me trae los registros con dicho valor. Esta es la parte de la consulta que tiene la función de buscar en la tabla de la base de datos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$categoria = $_REQUEST['categoria'] ;
$busqueda = strtolower ($_REQUEST['busqueda']);
 
?>
 
 
  <?php
// incluimos la conexión
require_once("../conexionbd/conexion.php");
 
// consultar la tabla productos
$sql_registe = mysqli_query($conexion, "SELECT COUNT(*) as total_registro FROM producto
INNER JOIN categoria ON producto.Categoria_IDCategoria = categoria.IDCategoria
INNER JOIN estado ON producto.Estado_IDEstado = estado.IDEstado
INNER JOIN editorial ON producto.Editorial_IDEditorial = Editorial.IDEditorial
INNER JOIN estante ON producto.Estante_IDEstante = Estante.IDEstante
INNER JOIN autor ON producto.Autor_IDAutor = autor.IDAutor WHERE (IDProducto LIKE '%' '".$categoria.$busqueda."' '%' OR NombreProducto LIKE '%' '".$categoria.$busqueda."' '%' OR
Portada LIKE '%' '".$categoria.$busqueda."' '%' OR CantidadEjemplares LIKE '%' '".$categoria.$busqueda."' '%' OR categoria.NombreCategoria LIKE '%' '".$categoria.$busqueda."' '%' OR
estado.Estado LIKE '%' '".$categoria.$busqueda."' '%' OR editorial.NombreEditorial LIKE '%' '".$categoria.$busqueda."' '%' OR estante.Estante LIKE '%' '".$categoria.$busqueda."' '%' OR
autor.NombreAutor LIKE '%' '".$categoria.$busqueda."' '%' )");
Agradecería la ayuda.
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

Buscar dos registros al mismo tiempo

Publicado por Mauro (1037 intervenciones) el 23/04/2021 14:48:19
Hola Zair:

Me parece que el problema puede estar en la concatenación de $categoria.$busqueda.

Para hacer una prueba, guarda todo el string SQL en una variable y verifica su valor.

Por otra parte, ten cuidado con esta forma de realizar la consulta.

Te expones a inyecciones SQL.

Justo estaba hablando de este mismo tema en este hilo.

Saludos!
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

Buscar dos registros al mismo tiempo

Publicado por Zair Estevan (7 intervenciones) el 23/04/2021 17:15:19
Hola Mauro, gracias por la respuesta, soy un poco novato, no se ha que te refieres con guardar el string y verificar el valor, muchas gracias por la respuesta.
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

Buscar dos registros al mismo tiempo

Publicado por Mauro (1037 intervenciones) el 23/04/2021 20:43:56
Hola Zair:

Me refiero a hacer algo como:

1
2
3
4
5
6
7
8
9
10
11
$sql = "SELECT COUNT(*) as total_registro FROM producto
INNER JOIN categoria ON producto.Categoria_IDCategoria = categoria.IDCategoria
INNER JOIN estado ON producto.Estado_IDEstado = estado.IDEstado
INNER JOIN editorial ON producto.Editorial_IDEditorial = Editorial.IDEditorial
INNER JOIN estante ON producto.Estante_IDEstante = Estante.IDEstante
INNER JOIN autor ON producto.Autor_IDAutor = autor.IDAutor WHERE (IDProducto LIKE '%' '".$categoria.$busqueda."' '%' OR NombreProducto LIKE '%' '".$categoria.$busqueda."' '%' OR
Portada LIKE '%' '".$categoria.$busqueda."' '%' OR CantidadEjemplares LIKE '%' '".$categoria.$busqueda."' '%' OR categoria.NombreCategoria LIKE '%' '".$categoria.$busqueda."' '%' OR
estado.Estado LIKE '%' '".$categoria.$busqueda."' '%' OR editorial.NombreEditorial LIKE '%' '".$categoria.$busqueda."' '%' OR estante.Estante LIKE '%' '".$categoria.$busqueda."' '%' OR
autor.NombreAutor LIKE '%' '".$categoria.$busqueda."' '%' )";
echo "<pre>$sql</pre>";
$sql_registe = mysqli_query($conexion, $sql);

Saludos!
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