Problemas con el buscador en tiempo real AJAX, PHP
Buenas,
Antes que nada, queria decir que el formateo de GetSQLValueString la tengo en un archivo funciones que lo tengo ligado al archivo conexion.php
Despues tengo los siguientes archivos.
res_buscador.php :
Antes que nada, queria decir que el formateo de GetSQLValueString la tengo en un archivo funciones que lo tengo ligado al archivo conexion.php
Despues tengo los siguientes archivos.
res_buscador.php :
<?php require_once('../Connections/conexion.php'); ?> <?php //Recogemos la cadena $busqueda=$_POST['cadena']; //Aquí hacer la consulta para la busqueda con LIKE $busqueda $query = sprintf("SELECT * FROM posts WHERE titulo,portada LIKE %s", GetSQLValueString("%" . $busqueda . "%", "text")); //Función GetSQLValueString al fina del tema ?>buscador.php :
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script> function buscar_ajax(cadena){ $.ajax({ type: 'POST', url: 'buscador.php', data: 'cadena=' + cadena, success: function(respuesta) { //Copiamos el resultado en #mostrar $('#mostrar').html(respuesta); } }); } </script> <form id="form1" name="form1" method="get" action="<?php echo $urlWeb; ?>page/resultados.php"> <input name="buscar" type="text" onkeyup="buscar_ajax(this.value);" class="barrabuscar" placeholder="Buscar.." id="buscar" size="32" /> <input type="submit" name="button" class="btnbuscar" id="buscar" value="" /> </form> <div id="mostrar"> <?php //Esto se pega en la div #mostrar echo $busqueda; ?> </div>Salu2
0
Puntos
Puntos
2975
Visitas
Visitas
11
Resp
Resp
Por valentinchiflu hace 102 meses
Principiante
Respuesta #1
hola, esta explicado en un tema muy reciente https://datoweb.com/post/2514/mostrar-resultados-de-busqueda-con-php
salu2
salu2
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #2
He hecho la consulta a la base de datos pero sigue saliendo me: Undefined variable: busqueda
0
Puntos
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #3
a ver, con poner solo esto:
para sacar los resultados tienes que hacer algo como esto:
//Aquí hacer la consulta para la busqueda con LIKE $busqueda $query = sprintf("SELECT * FROM posts WHERE titulo,portada LIKE %s", GetSQLValueString("%" . $busqueda . "%", "text")); //Función GetSQLValueString al fina del temano basta, obviamente es el ejemplo de como ejecutar la consulta ademas estas usando una coma titulo,portada y es con un punto es decir titulo.portada
para sacar los resultados tienes que hacer algo como esto:
<?php require_once('../Connections/conexion.php'); $busqueda=$_POST['cadena']; mysql_select_db($database_conexion, $conexion); $query_buscar = sprintf("SELECT * FROM posts WHERE titulo LIKE %s", GetSQLValueString("%" . $busqueda . "%", "text")); $buscar = mysql_query($query_buscar, $conexion) or die(mysql_error()); $row_buscar = mysql_fetch_assoc($buscar); $totalRows_buscar = mysql_num_rows($buscar); if($totalRows_buscar!=''){ do { echo $row_buscar['titulo'].'<br>'; } while($row_buscar = mysql_fetch_assoc($buscar)); } else echo 'No hay resultados'; mysql_free_result($buscar); ?>en realidad ya estaba solucionado en el otro tema...
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #4
He hecho la consulta como en el otro tema igual como en este ejemplo que tu lo has hecho y he quitado lo de portada para a ver si era eso el fallo, y sigue dandome ese error.
0
Puntos
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #5
ok, copia y pega aquí el error que te imprime ;)
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #6
Valentin utiliza los codigos del post que te comenta alber, con lo que me explico ami ahi me funciono de lujo.
;)
;)
Respuesta #7
Notice: Undefined variable: busqueda inC:\xampp\htdocs\pelisvali\inc\buscador.phpon line 21
Notice: Undefined variable: busqueda inC:\xampp\htdocs\pelisvali\inc\buscador.phpon line 21
0
Puntos
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #8
Según he visto los resultados me los está sacando bien, pero si refresco la pagina sin escribir nada, me sale ese error, pero si escribo en el campo de texto desaparece el error y sale bien..
Lo seguire intentando a ver donde estara el fallo.
Gracias.
Lo seguire intentando a ver donde estara el fallo.
Gracias.
0
Puntos
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #9
vale, ahora por toooodo el código del fichero buscador.php
0
Puntos
Puntos
Por alber hace 102 meses
Administrador
Respuesta #10
fichero buscador:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script> function buscar_ajax(cadena){ $.ajax({ type: 'POST', url: 'inc/res_buscar.php', data: 'cadena=' + cadena, success: function(respuesta) { //Copiamos el resultado en #mostrar $('#mostrar').html(respuesta); } }); } </script> <form id="form1" name="form1" method="get" action="<?php echo $urlWeb; ?>page/resultados.php"> <input name="buscar" type="text" onkeyup="buscar_ajax(this.value);" class="barrabuscar" placeholder="Buscar.." id="buscar" size="32" /> <input type="submit" name="button" class="btnbuscar" id="buscar" value="" /> </form> <div id="mostrar"> <?php echo $busqueda; ?> </div>fichero res_buscar.php
<?php require_once('../Connections/conexion.php'); ?> <?php $busqueda=$_POST['cadena']; mysql_select_db($database_conexion, $conexion); $query_buscarReal = sprintf("SELECT * FROM posts WHERE titulo LIKE %s", GetSQLValueString("%" . $busqueda . "%", "text")); $buscarReal = mysql_query($query_buscarReal, $conexion) or die(mysql_error()); $row_buscarReal = mysql_fetch_assoc($buscarReal); $totalRows_buscarReal = mysql_num_rows($buscarReal); if($totalRows_buscarReal !=''){ do { echo $row_buscarReal['titulo'].'<br>'; echo $row_buscarReal['portada'].'<br>'; } while($row_buscarReal = mysql_fetch_assoc($buscarReal)); } else echo 'No hay resultados'; mysql_free_result($buscarReal); ?>
0
Puntos
Puntos
Por valentinchiflu hace 102 meses
Principiante
Respuesta #11
por supuesto, es que esa pagina no se refresca solo esta preparada para recibir el parámetro de la busqueda, lo que tienes que hacer es no dejar entrar en caso de que el campo este vacio!
te pongo dos opciones la linea 5 y la 8, utiliza la que mas te interese y la otra la borrar:
te pongo dos opciones la linea 5 y la 8, utiliza la que mas te interese y la otra la borrar:
<?php require_once('../Connections/conexion.php'); ?> <?php //Si la cadena no existe no ejecutar if(!isset($_POST['cadena'])) exit; //Si la cadena no existe redireccionar if(!isset($_POST['cadena'])) header('Location: http://tudominio.com'); $busqueda=$_POST['cadena']; mysql_select_db($database_conexion, $conexion); $query_buscarReal = sprintf("SELECT * FROM posts WHERE titulo LIKE %s", GetSQLValueString("%" . $busqueda . "%", "text")); $buscarReal = mysql_query($query_buscarReal, $conexion) or die(mysql_error()); $row_buscarReal = mysql_fetch_assoc($buscarReal); $totalRows_buscarReal = mysql_num_rows($buscarReal); if($totalRows_buscarReal !=''){ do { echo $row_buscarReal['titulo'].'<br>'; echo $row_buscarReal['portada'].'<br>'; } while($row_buscarReal = mysql_fetch_assoc($buscarReal)); } else echo 'No hay resultados'; mysql_free_result($buscarReal); ?>tema cerrado, salu2
0
Puntos
Puntos
Por alber hace 102 meses
Administrador