MySQL - realizar un buscador con mysql y php

   
Vista:

realizar un buscador con mysql y php

Publicado por jean (1 intervención) el 10/12/2015 21:18:07
buenas tardes amigos, tengo un problema y es que estoy realizando un ecommerce el cual posee un buscador para asi sea buscar por productos o simplemente filtrar, el asunto es que para ese buscador mediante una vista que me muestra todos los registros le realizo un like %cualquier cosa% y el funciona bien,pero al momento de buscar una frase mas larga no me muestra ningun resultado, he visto que se puede utilizar un index fulltext y en vez de usar like puedo usar match against pero no se si pueda hacer esto en varias tablas al mismo tiempo
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 daniel

realizar un buscador con mysql y php

Publicado por daniel (1 intervención) el 17/12/2015 17:38:46
Hola, este es el codigo de la pagina que hice: funciona asi: en un formulario
1
2
3
4
5
<form action="home.php" method="post" class="formLogin">
<input name="regnombre" type="hidden" value="netdool" />
	<input name="nombre" type="text" maxlength="30" required placeholder="nombre, apellido o empresa" size="25" autofocus />
	<input type="submit" value=" BUSCAR " />
	</form>

escribo un DNI, el nombre de una empresa, un nombre, apellido o el fragmento que yo recuerde, el siguiente codigo lo busca en los lugares indicados...

lo que tambien se puede hacer es una tabla que guarde todo el texto completo (varchar o text con valor de 250 caracteres) y que tu buscador busque en esa columna...

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
<?php
if(isset($_REQUEST['regnombre']))
{
	$nombre = $_REQUEST['nombre'];
	$buscarnombre = mysqli_query($connection, "SELECT * FROM visitas WHERE nombre LIKE '%" .$nombre. "%' and objetivo = '$objetivo'");
	$buscarapellido = mysqli_query($connection, "SELECT * FROM visitas WHERE apellido LIKE '%" .$nombre. "%' and objetivo = '$objetivo'");
	$buscarempresa = mysqli_query($connection, "SELECT * FROM visitas WHERE empresa LIKE '%" .$nombre. "%' and objetivo = '$objetivo'");
	$buscardni = mysqli_query($connection, "SELECT * FROM visitas WHERE dni LIKE '%" .$nombre. "%' and objetivo = '$objetivo'");
 
	if((mysqli_num_rows($buscarnombre)==0) and (mysqli_num_rows($buscarapellido)==0) and (mysqli_num_rows($buscarempresa)==0) and (mysqli_num_rows($buscardni)==0))
	{
		echo '<p>Por favor, registre esta nueva visita en el siguiente formulario</p>';
	}else{
 
		while($reg=mysqli_fetch_array($buscarnombre))
		{
		echo '<p><a href="home.php?dni='.$reg['dni'].'&apellido='.$reg['apellido'].'&nombre='.$reg['nombre'].'&empresa='.$reg['empresa'].'&triptico='.$reg['triptico'].'&mensaje" id="resultado" >Empresa: '.$reg['empresa'].' - '.$reg['apellido'].', '.$reg['nombre'].' (DNI: '.$reg['dni'].')</a></p>';
		}
 
		while($reg=mysqli_fetch_array($buscarapellido))
		{
		echo '<p><a href="home.php?dni='.$reg['dni'].'&apellido='.$reg['apellido'].'&nombre='.$reg['nombre'].'&empresa='.$reg['empresa'].'&triptico='.$reg['triptico'].'&mensaje" id="resultado" >Empresa: '.$reg['empresa'].' - '.$reg['apellido'].', '.$reg['nombre'].' (DNI: '.$reg['dni'].')</a></p>';
		}
 
		while($reg=mysqli_fetch_array($buscarempresa))
		{
		echo '<p><a href="home.php?dni='.$reg['dni'].'&apellido='.$reg['apellido'].'&nombre='.$reg['nombre'].'&empresa='.$reg['empresa'].'&triptico='.$reg['triptico'].'&mensaje" id="resultado" >Empresa: '.$reg['empresa'].' - '.$reg['apellido'].', '.$reg['nombre'].' (DNI: '.$reg['dni'].')</a></p>';
		}
 
		while($reg=mysqli_fetch_array($buscardni))
		{
		echo '<p><a href="home.php?dni='.$reg['dni'].'&apellido='.$reg['apellido'].'&nombre='.$reg['nombre'].'&empresa='.$reg['empresa'].'&triptico='.$reg['triptico'].'&mensaje" id="resultado" >Empresa: '.$reg['empresa'].' - '.$reg['apellido'].', '.$reg['nombre'].' (DNI: '.$reg['dni'].')</a></p>';
		}
	}
 
}else{
	echo ' ';
}
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