Foros del Web » Programando para Internet » PHP »

Buscar en dos celdas con mysql

Estas en el tema de Buscar en dos celdas con mysql en el foro de PHP en Foros del Web. Hola que tal compañeros, llevo dias desarrollando una pagina y me quede atorado en un problema, espero puedan ayudarme. Tengo una tabla en la base ...
  #1 (permalink)  
Antiguo 08/07/2009, 08:47
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Buscar en dos celdas con mysql

Hola que tal compañeros, llevo dias desarrollando una pagina y me quede atorado en un problema, espero puedan ayudarme.

Tengo una tabla en la base de datos llamada empresa en la cual tengo:

ID_empresa, Nom_empresa, Giro_empresa, Ciudad_empresa, Estado_empresa, servicios_empresa.

El problema es que en el buscador tengo dos opciones, buscar y ciudad, lo cual manda un error si no pones ninguna de las dos por lo tanto es obligatorio poner por ejemplo. Casas , madrid.

Bueno tal vez ustedes diran no es un problema con una sentencia sql es posible, pero en la entidad servicios_empresas, pueden tener mas de un servicio, puede estar llenada de la siguiente forma.

Servicios_empresa -> Casas, Renta de casas. Venta de casas, Renta de autos, etc.

Ahi fue cuando ya no supe como hacerle, ya que tengo que comparar la palabra que mando el usuario, con las palabras que estan en servicio_empresa y si son mas de 10 resultados, separarlos por paginas, ejemplo:

<< Anterior 1,2,3,4... Siguiente >>

espero me puedan ayudar ando desesperado por que ya tengo que entregar el proyecto y es lo unico que me falta.

Ovio todo lo estoy haciendo con php5 aunque el titulo del tema no corresponde muy bien

Última edición por neez; 08/07/2009 a las 10:45
  #2 (permalink)  
Antiguo 08/07/2009, 10:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Buscar en dos celdas con mysql

Tema trasladado desde PHP Orientado a Objetos
  #3 (permalink)  
Antiguo 08/07/2009, 19:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Buscar en dos celdas con mysql

Usa el operador % de MySQL. Es un comodin que permite CUALQUIER caracter.

SELECT * FROM tabla WHERE campo LIKE '%casa%'

Busca todos los registros de tabla, donde "campo" contenga "casa".

Aunque, con una buena estructura de tu BBDD no hubieras tenido este inconveniente.

Para la paginacion, utiliza el PHPPaging de okram (Usa el buscador del foro).
  #4 (permalink)  
Antiguo 09/07/2009, 11:32
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Buscar en dos celdas con mysql

Cita:
Iniciado por Ronruby Ver Mensaje
Usa el operador % de MySQL. Es un comodin que permite CUALQUIER caracter.

SELECT * FROM tabla WHERE campo LIKE '%casa%'

Busca todos los registros de tabla, donde "campo" contenga "casa".

Aunque, con una buena estructura de tu BBDD no hubieras tenido este inconveniente.

Para la paginacion, utiliza el PHPPaging de okram (Usa el buscador del foro).

Probe tu manera pero no me manda nada, al pareser no me reconoce el operador LIKE, lo intente de estos modos:

$result=$conn->query("select * from empresa where serv_empresa LIKE '%redes%'");

$result=$conn->query("select * from empresa where estado_empresa='$ciu' and serv_empresa LIKE '%$palabra%'");

no se si me podria señalar en donde fue mi error.

Y a tu manera de pensar como deberia estructurar mi BD, necesito que la empresa pueda tener 15 palabras claves dependiendo de sus servicios.

PD: Agradesco su ayuda,
  #5 (permalink)  
Antiguo 09/07/2009, 11:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscar en dos celdas con mysql

El query que hiciste esta bien escrito me refiero a este

Código PHP:
$result=$conn->query("select * from empresa where serv_empresa LIKE '%redes%'"); 
Si tratas de escribir ese mismo query en la base de datos directamente. Por ejemplo usando phpMyAdmin o directamente en MySQL ¿te sale información?
  #6 (permalink)  
Antiguo 09/07/2009, 11:42
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Buscar en dos celdas con mysql

Las tan famosas relaciones 1:N.

Tu tabla empresas tiene un ID unico y primario. Crea otra tabla donde tengas:

id | id_empresa | servicio

Asi puedes tener por ejemplo:

1 | 1 | casas
2 | 1 | renta de casas
3 | 1 | renta de autos

Etc etc etc ...

Asi a la hora de mostrar las empresas que tienen como servicio: renta de casas, es mas fácil. Trae muchas ventajas pero si ya estas satisfecho por como tienes estructurada tu BBDD, no la cambies.

No le veo ningún error a la consulta, trata ejecutándola directamente desde MySQL o usando phpMyAdmin

http://www.htmlite.com/mysql011.php
  #7 (permalink)  
Antiguo 09/07/2009, 12:30
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Buscar en dos celdas con mysql

gracias amigos ya vi cual era el problema, ahora me sera mas sencillo paginar :D.

tienes razon Ronruby asi puede ser mucho más sencillo, no lo pense antes pero bueno aorita ya me urge entregar este proyecto y no me da tiempo de más modificaciones.

muchas gracias por su ayuda :D
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 20:30.