PHP - Filtro de busquedas (AYUDA)

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

Filtro de busquedas (AYUDA)

Publicado por Agustin (6 intervenciones) el 11/03/2019 21:15:56
Estoy queriendo filtrar aún mas los resultados que arroja un buscador hecho con method get. Pero el navegador da el siguiente error:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Empleos\empleos\resultados.php on line 57

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Empleos\empleos\resultados.php on line 58

El codigo es el siguiente:
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
<?php require_once('conexion.php');
 
$menu='resultados';
 
//Creamos las variables
$consultados='';
$parametros='';
 
//Creamos el primer parametro en caso de que exista
if (isset($_POST['xcategoria'])) {
  if ($_POST['xcategoria']!='') $parametros.="categoria=".$_POST['xcategoria'].'&';
 }
//Creamos el segundo parametro en caso de que exista
 if (isset($_POST['xpuesto'])) {
   if ($_POST['xpuesto']!='') $parametros.="puesto=".$_POST['xpuesto'].'&';
 }
 
 
//Dividimos los parametros
$porciones=explode('&',$parametros);
 
//Contamos la cant de parametros
$cant=count($porciones)-1;
 
//Si hay mas de 1 parametro los unimos con AND para mysql
if ($cant>1){
for ($i=0; $i < $cant; $i++) {
    $consultados.= $porciones[$i].' AND ';
}
} else {
    $consultados.= $porciones[0].' AND ';
}
 
//Eliminamos el AND del final
$consultados = substr ($consultados, 0, strlen($consultados) - 4);
 
//Obtenemos algo como columna1=dato1 AND columna2=dato2
 
$cadena=trim($_GET['buscar']);
$consulta='';
$partes=explode(' ',$cadena);
$cantidad=count($partes);
 
for ($i=0; $i < $cantidad; $i++) {
  $consulta.= 'ciudad LIKE '.formatearcadena('%'.$partes[$i].'%','text').' AND ';
}
 
 
$consulta=substr($consulta,0,-4);
 
 
 
 
//Seleccionar tabla m_posts
$accion_post="SELECT * FROM e_posts WHERE $consulta AND $consultados ORDER BY visitas DESC";
$consulta_post=mysqli_query($conexion,$accion_post);
$datos_post=mysqli_fetch_assoc($consulta_post);
$cantidad_post=mysqli_num_rows($consulta_post);
 
 
?>


Escucho recomendaciones/soluciones. desde ya muchas gracias.
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Filtro de busquedas (AYUDA)

Publicado por Alejandro (839 intervenciones) el 12/03/2019 00:27:10
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Me parece que tu consulta esta mal hecha o hay algo mal en tus datos de conexión.
intenta un echo $accion_post; para que veas que estas construyendo.

Ademas
1
2
3
4
5
6
7
$consulta_post=mysqli_query($conexion,$accion_post);
if($consulta_post){
   $datos_post=mysqli_fetch_assoc($consulta_post);
   $cantidad_post=mysqli_num_rows($consulta_post);
}else{
   echo "Error";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Filtro de busquedas (AYUDA)

Publicado por italo_pm (193 intervenciones) el 12/03/2019 00:52:44
hola, como te sugirió Alejandro, cuando tienes errores con php y mysql lo principal aparte de controlar la correcta ejecución de mysqli_query, es a menera de debbug hacer los echo de las querys, tambien recuerda la distincion entre varchar o char y los numericos int etc etc ya que la query cambia.

y no menos importante hacer siempre (a manera de debbugs) el print_r de POST y GET para saber como llegan los datos.

y por ultimo, si ya has abierto un tema con el mismo problema deberias de seguir ahi, esperando la ayuda ahi, trata de explicar mejor tu problema y dificultades y lo que deseas obtener.

salud2
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