Bueno dejando a un lado que soy un novato sugiero lo siguiente:
Crear un arreglo con las palabras comunes que quieres eliminar(para, por, de, etc etc etc)
depuras tu cadena obtenida del form y le quitas las palabras comunes contenidas en el arreglo,
despues separas tus palabras que te importan y haces generas una consulta del tipo
$sql = "SELECT campos FROM tabla WHERE ";
$sql .= "campodondebusco like %palabra1% ";
$sql .= "AND campodondebusco like %palabra2%";
bueno es una sugerencia codificandolo el SQL lo generas automaticamente, que les parece mi posible solución??
Saludos
From: "José Yepes" <electricyepes@gmail.com>
To: "Alfonso Alejandro Reyes Jimenez" <aareyes@scitum.com.mx>
Cc: "Ricardo Martinez" <hariseldom@gmail.com>, php-es@lists.php.net
Sent: Miércoles, 8 de Diciembre 2010 18:40:22
Subject: Re: [PHP-ES] ..::Busqueda::..
Buena noche a todos desde Monterrey, México.
A mi gusto creo que se están complicando demasiado la vida :P
Simplemente... ¿porqué no pruebas separar cada palabra y buscar los
registros con CADA UNA de las palabras, y ya después juntas los resultados?
Por ejemplo
<?php
//Arreglo de palabras clave;
// LO QUE ESTA ENTRE COMILLAS ES UN ESPACIO SIMPLE
$busqueda = explode(" ", $_GET["search"]);
foreach($busqueda as $palabra)
{
$query_Productos = "SELECT Clave, Descripcion, Familia, Publico
FROM productos_publicados WHERE Categoria like '%$palabra%' OR Familia like
'%$palabra%' OR Descripcion like '%$palabra%' OR Fabricante like
'%$palabra%' ORDER BY Clave ASC";
//AQUI RECOGERIAS LOS REGISTROS QUE TE ARROJA CADA PALABRA, EN UN
ARREGLO, QUE SE YO?? ;)
}
unset($palabra)
?>
Y pues al final juntas los resultados o haces con los registros lo que creas
más conveniente.
Espero que te sea útil esta idea.
Saludos!
El 8 de diciembre de 2010 17:25, Alfonso Alejandro Reyes Jimenez <
aareyes@scitum.com.mx> escribió:
Gracias Ricardo es mas o menos lo mismo que me hizo favor de mandar Juan,
sin embargo necesito buscar dos palabras en el mismo campo, no unirlas :(
Saludos.
De: Ricardo Martinez
Enviado el: miércoles, 08 de diciembre de 2010 05:17 p.m.
CC: php-es@lists.php.net
Asunto: Re: [PHP-ES] ..::Busqueda::..
Hola Alfonso,
la verdad que es un problema interesante, te paso un link interesante
donde tratan esto.
Si alguien conoce alguna solución mejor, estaría bien verla.
http://www.desarrolloweb.com/articulos/2087.phpEn esta web, comprueba el número de palabras, si solo contiene una
palabra ( la búsqueda ), entonces lo hacen con like.
Si es una cadena de palabras, implementan una solución con MATCH
(TITULO,DESARROLLO) AGAINST ('$busqueda')
pero que tiene algún inconveniente también porque hay que poner las
palabras clave de cada tabla por lo que veo.
Un saludo!
2010/12/8 Alfonso Alejandro Reyes Jimenez <aareyes@scitum.com.mx>
Hola a todos.
Tengo un cuadro de búsqueda al inicio de la pagina, hice un formulario
para enviar lo que sea escrito en el hacia el url, una vez que lo mande a la
página de búsqueda con el texto incluido tomo la información para generar un
query en mysql.
Si escribo por ejemplo perro, funciona de maravilla, pero si escribo
comida para perro me marca que no hay registros. La idea es que quite "para"
y entregue los resultados que coincidan con comida y perro.
El formulario tiene el siguiente código:
<form id="productos" method="GET" action="catalogo_ventas.php" >
<table width="100%" border="0" cellspacing="0"
cellpadding="5">
<tr>
<td height="60"> </td>
</tr>
<tr>
<td><label>
<div align="center">
<input type="text" name="search"
style="text-transform: uppercase">
</div>
</label></td>
</tr>
<tr>
<td><div align="center"><a href="#
<view-source:http://www.happypetmexico.com/index.html> "
onmouseout="MM_swapImgRestore()"
onmouseover="MM_swapImage('search','','images/button_search_rollover.png',1)">
<input type="image"
src="images/button_search.png <view-source:
http://www.happypetmexico.com/images/button_search.png> " alt="Submit
Form" align="middle" width="90" height="26" border="0" />
</a></div></td>
</tr>
</table>
</form>
Y la pagina de búsqueda:
<?php $busqueda = $_GET["search"];
$query_Productos = "SELECT Clave, Descripcion, Familia, Publico FROM
productos_publicados WHERE Categoria like '%$busqueda%' OR Familia like
'%$busqueda%' OR Descripcion like '%$busqueda%' OR Fabricante like
'%$busqueda%' ORDER BY Clave ASC";?>
Lo depure para no hacer un correo enorme.
Cualquier ayuda es bienvenida, gracias de antemano.
Saludos.
Alfonso
--
Ricardo
_______________________________________________
IT Architect
website:
http://www.pulsarinara.com--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit:
http://www.php.net/unsub.php--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit:
http://www.php.net/unsub.php--
"No te esfuerzes tanto. Las mejores cosas de la vida suceden cuando menos te
las esperas!!"