PHP - buscador web php ajax

 
Vista:
Imágen de perfil de Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 04/11/2019 19:24:32
buenas como esta chicos/as! les cuento, estoy armando un buscador web para mi pagina, y estoy haciendolo con php y mysql, saque un ejemplo de la w3school de php con ajax, ahora estoy tratando de reprogramar los codigos para recuperar los parametros de la base de datos y buscar todas las insinuaciones del array! no se si me explico le dejo los codigos haber si me pueden dar una mano gracias!

archivohtml
obtenerincinuacionphp
conexionaladg
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por joel (1269 intervenciones) el 04/11/2019 20:25:18
Hola Nicolas, veo lo códigos, pero no se muy bien que buscar... nos puedes comentar con mas detalle?
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 05/11/2019 01:26:31
el ejemplo que saque de la w3school es un buscador web con un archivo php, no es con una base de datos! eso es lo que quiero hacer recuperar el valor de la base de datos, emves que del array del archivo php! se entiende???? muchas gracias joel!
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 Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Lawliet (351 intervenciones) el 05/11/2019 04:22:39
Buenas noches!!!

Me imagino que lo que necesitas es una caja de texto que conforme vayas escribiendo recuperes la información en base de datos. Creo que esto te podría funcionar. ES IMPORTANTE MENCIONAR que es un código sencillo y rápido de ejemplo que hice en estos momentos, por lo cual te recomendaría busques la forma de optimizarlo ya que estoy seguro se puede optimizar de N formas.

HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
	<head>
		<title>Buscador</title>
		<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
		<script type="text/javascript" src="main.js"></script>
	</head>
	<body>
		<div>
			<label>Buscador:</label><input type="text" id="search" placeholder="Buscar">
		</div>
		<div id="result"></div>
	</body>
</html>

JS
1
2
3
4
5
6
7
$(document).ready(function() {
	$("#search").keyup(function() {
		$.post("controller.php", {cache:false, name:$(this).val()}, function(response) {
			$("#result").html(response);
		});
	});
});

PHP
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
<?php
	$conn = mysqli_connect('localhost','root','','base_de_datos');
	mysqli_set_charset($conn,"utf8");
 
	$sql = "SELECT id_campo,nombre_campo FROM tabla WHERE nombre_campo LIKE '%".$_POST['name']."%'";
 
	$result = mysqli_query($conn,$sql);
	if($result) {
		$tabla = "<table border='1' style='border-collapse: collapse;'>
			<tr>
				<th>ID</th>
				<th>Producto</th>
				<th>Precio</th>
			</tr>";
		if($row = mysqli_fetch_array($result)) {
			do {
				$tabla .= "
				<tr>
					<td>".$row[0]."</td>
					<td>".$row[1]."</td>
				</tr>";
			} while($row = mysqli_fetch_array($result));
		} else {
			$tabla .= "<tr><td colspan='2'>Sin Resultados</td></tr>";
		}
		$tabla .= "</table>";
 
		echo $tabla;
	} else {
		echo "Error en la consulta: " . mysqli_error($conn);
	}
?>

Estructura del proyecto
Captura

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Suerte!

P.D: Te dejo los enlaces como referencias.
https://api.jquery.com/keyup/
https://api.jquery.com/jQuery.post/
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 06/11/2019 12:49:53
Muchisimas gracias Lawliet!
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 10/11/2019 13:15:47
imagen

hola Lawliet! disculpame la molestia, mira, me lee los datos de la db, pero me tira ese error, y el buscador no me funciona! cualquier ayuda te agradesco!
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 Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Lawliet (351 intervenciones) el 10/11/2019 22:05:22
Hola!!!

El error se refiere a que no estás enviando la variable a través de tu petición AJAX. Te explico un poco para aclarar dudas.

JS
1
2
3
4
5
6
7
$(document).ready(function() {
	$("#search").keyup(function() {
		$.post("controller.php", {cache:false, name:$(this).val()}, function(response) {
			$("#result").html(response);
		});
	});
});

controller.php. Como podemos observar es el nombre del archivo a donde nosotros hacemos nuestra petición o dicho de otra forma, es el archivo PHP a donde mandaremos nuestras variables.

cache:false. Prácticamente evita que la petición enviada se agregue al cache del navegador.

name:$(this).val(). Son los parámetros que nosotros enviaremos mediante POST, la sintaxis es la siguiente: <nombre>:<valor>. En este caso yo estoy enviando un parámetro cuyo nombres es name y el valor sería el valor que contiene la caja de texto; es decir, $(this).val().

response. Es la respuesta de nuestra petición.

PHP
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
<?php
	$conn = mysqli_connect('localhost','root','','base_de_datos');
	mysqli_set_charset($conn,"utf8");
 
	$sql = "SELECT id_campo,nombre_campo FROM tabla WHERE nombre_campo LIKE '%".$_POST['name']."%'";
 
	$result = mysqli_query($conn,$sql);
	if($result) {
		$tabla = "<table border='1' style='border-collapse: collapse;'>
			<tr>
				<th>ID</th>
				<th>Producto</th>
				<th>Precio</th>
			</tr>";
		if($row = mysqli_fetch_array($result)) {
			do {
				$tabla .= "
				<tr>
					<td>".$row[0]."</td>
					<td>".$row[1]."</td>
				</tr>";
			} while($row = mysqli_fetch_array($result));
		} else {
			$tabla .= "<tr><td colspan='2'>Sin Resultados</td></tr>";
		}
		$tabla .= "</table>";
 
		echo $tabla;
	} else {
		echo "Error en la consulta: " . mysqli_error($conn);
	}
?>

Estoy seguro que anteriormente has hecho consultas a base de datos, lo único relevante a marcar es que en el POST nosotros estamos recibiendo el nombre que nosotros declaramos en el AJAX, si recibimos en el POST un parámetro que no declaramos nos mandara el error que tu mencionas.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 16/11/2019 23:46:01
Hola Lawliet! disculpame, tendras alguna sugerencia para que se borrer los datos de la db despues de hacer la consulta me explico?? escribo texto en el search y despues cuando lo borro me aparecen los datos!
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 Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Lawliet (351 intervenciones) el 17/11/2019 00:40:12
Hola!

No es que te aparezcan los datos cuando se encuentre vació la caja de texto, lo que ocurre es que se queda con la última petición por lo cual parece que se ve de esa forma.

Para solucionar el problema vasta con realizar una pequeña validación de la siguiente manera.

1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function() {
	$("#search").keyup(function() {
		if($(this).val() != "") {
			$.post("controller.php", {cache:false, name:$(this).val()}, function(response) {
				$("#result").html(response);
			});
		} else {
			$("#result").empty();
		}
	});
});

Si la caja de texto es diferente de vació realizamos la petición AJAX correspondiente para poder consultar la información en base de datos, en caso contrario lo que hacemos es limpiar nuestro response.

https://api.jquery.com/empty/

Sin más que comentar quedo al pendiente de cualquier duda y/o comentario.

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
Imágen de perfil de Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 25/11/2019 21:23:47
Muchas gracias Kathiu! por otro lado, sigo con este proyecto, ahora quisiera q despues de recuperar los datos de la db me haga un href a un archivo q tengo en la pc por que estoy usando xamp pero q en un futuro estaria en un servidor o alguna otra forma que se te ocurra!! te dejo las imagenes! muchas gracias!


buscadorweb
buscadorweb1
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 Nicolas
Val: 93
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

buscador web php ajax

Publicado por Nicolas (52 intervenciones) el 01/12/2019 01:37:14
hola Lawliet! necesitaria ahora que cuando tome los datos de la db, me haga un a href a un archivo de video que tengo en el servidor(este caso la pc) arriba puse las imagenes de lo que quiero hacer! en el momento de mostrar los datos de la consulta con la variable row()
en el mismo parrafo me gustaria que aparesca el archivo y la opcion de reproducirlo! en este caso el las datos obetenidos de la db estan directamente relacionados con el archivo que quiero reproducir!
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

buscador web php ajax

Publicado por km (1 intervención) el 07/03/2020 22:34:00
Error en la consulta: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP BY Codigo' at line 1

no entiendo porque me sale ese error
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