Foros del Web » Programando para Internet » PHP »

Sugerencia en Buscador Php con LIKE

Estas en el tema de Sugerencia en Buscador Php con LIKE en el foro de PHP en Foros del Web. Hola buenas les comento mi caso: He programado un buscador, con un formulario donde tiene un campo de busqueda y al lado una lista desplegable ...
  #1 (permalink)  
Antiguo 06/09/2007, 08:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Sugerencia en Buscador Php con LIKE

Hola buenas les comento mi caso:

He programado un buscador, con un formulario donde tiene un campo de busqueda y al lado una lista desplegable de Actividades.

Aqui es dejo la programacion que he utilizado:

<?php
include("conexion.php");

$nombre=$_POST[nombre];
$actividades=$_POST[actividades];

if ($actividades=="1")
{

$con = "SELECT * FROM empresas WHERE nombre LIKE '%$nombre%' OR clave LIKE '%$nombre%' OR descripcion LIKE '%$nombre%' ORDER BY nombre";
$res = mysql_query($con);
if ($resultado = mysql_fetch_array($res))

{ echo"Hemos encontrado las siguientes empresas, respecto a la búsqueda especificada<p></p>";

do

{
echo "<span class='cnmedio'><a href='index.php?menu=mirror&id=$resultado[id]'>$resultado[nombre]</span><br>
</a>
";}

while ($resultado = mysql_fetch_array($res));

}

else { echo '


No hemos encontrado ninguna empresa, con la búsqueda realizada.<br>Vuelva a intentarlo';}




}
else
{



$con2 = "SELECT * FROM empresas WHERE actividades='$actividades' AND nombre LIKE '%$nombre%' ORDER BY nombre" ;
$res2 = mysql_query($con2);
if ($resultado = mysql_fetch_array($res2))

{ echo"Hemos encontrado las siguientes empresas, respecto a la búsqueda especificada<p></p>";

do

{
echo "<span class='cnmedio'><a href='index.php?menu=mirror&id=$resultado[id]'>$resultado[nombre]</span><br>
</a>

";}

while ($resultado = mysql_fetch_array($res2));

}

else { echo '

No hemos encontrado ninguna empresa, con la búsqueda realizada.<br>Vuelva a intentarlo';}

}
?>


En la condicion 1 es ver todas las empresas y funciona correctamente.

Y atencion aqui viene mi duda, cuando es otra activididad peus para mostrar los resultados en el Where pongo actividades='$actividades' que la recoje de la lista desplegable xro solo puedo buscar en un solo campo komo tngo puesto nombre, y no me deja buscar en clave y descripcion.

Alguien sabe la sentencia exacta xk con OR entre los campos no vale ni con AND

Gracias de antemano;)
  #2 (permalink)  
Antiguo 06/09/2007, 09:34
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Sugerencia en Buscador Php con LIKE

Por qué "no vale" con OR o AND? Justamente eso es lo que hacen. Si querés agrupar las condiciones podés usar parentesis, por ejemplo

Código PHP:
$con2 "SELECT * FROM empresas WHERE (actividades='$actividades' OR clave ='$actividades' OR descripcion ='$actividades') AND nombre LIKE '%$nombre%' ORDER BY nombre" 
En el futuro, tratá de poner tu código entre [ php] y [ /php] así es más legible.
  #3 (permalink)  
Antiguo 06/09/2007, 11:37
 
Fecha de Ingreso: septiembre-2007
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Sugerencia en Buscador Php con LIKE

Seppo ante todo muchas gracias por contestar y soi nuevo ;) la proxima vez lo pongo entre php.

Te comento el campo clave descripcion y nombre es la variable a buscar osease clave='%$nombre%'.

Y si combino la variable actividades con un solo campo m funciona pero si ya pongo mas de dos campos pues no anda. Vi trastear como tu dices haber que saco muchas gracias maquina ;)
  #4 (permalink)  
Antiguo 06/09/2007, 11:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 10
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Sugerencia en Buscador Php con LIKE

Bueno ya esta solucionado, mira como quedo, conm parentesis como usted m dijo muchisimas gracias !!

Código PHP:
$con2 "SELECT * FROM empresas WHERE actividades='$actividades' AND ( nombre LIKE  '%$nombre%' OR clave LIKE  '%$nombre%' OR descripcion LIKE  '%$nombre%') ORDER BY nombre" 

Última edición por nestoweb; 06/09/2007 a las 11:46 Razón: Error
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:34.