Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Multiplicidades del buscador
 Foro Bloqueado  Tema Bloqueado


Autor Temas
ggmacchi
Starting Member

Argentina
20 Posts
Mensajes - 21 Oct 2007 :  10:20:07  Ver Perfil  Enviar Email
Hola amigos, como va? Espero que bien. Y espero que a mi tmb cuando logren ayudarme con lo sig. Tengo un buscador de una bd. La misma esta compuesta por una tabla que se llama recursos. En la misma tengo distintos campos, como nombre, apellido, telefono, etc. Uno de ellos se llama "categoria", en la que indico si es guia, o un servicio.
La cuestion es que tengo en mi buscador el sig tag


<%
Temp="Select * From recursos Where categoria = 'Guia' nombre = '%" & UCase(Request("palabra")) & "%' or ciudad LIKE '%" & UCase(Request("palabra")) & "%' or provincia LIKE '%" & UCase(Request("palabra")) & "%' or region LIKE '%" & UCase(Request("palabra")) & "%' or abarcalagos LIKE '%" & UCase(Request("palabra")) & "%' or abarcaciudades LIKE '%" & UCase(Request("palabra")) & "%' or apellido LIKE '%" & UCase(Request("palabra")) & "%' or textobreve LIKE '%" & UCase(Request("palabra")) & "%' or textolargo LIKE '%" & UCase(Request("palabra")) & "%' or otrotexto LIKE '%" & UCase(Request("palabra")) & "%' order by apellido, nombre asc"

Despues si es un servicio, pasa a ser categoria = 'servicio'
El tema es que no me discrimina segun categoria. Es decir, si yo tengo 10 personas q en algun campo coincidan, por ejemplo en una descripcion de la misma, me arroja esas coincidencias, pero sin filtrar que sea guia o servicio (segun lo que yo pida). En este caso yo pido q me arroje los que sean guias, pero me busca en la tabla recursos tanto sean guias, como de servicio.

Que parte anda mal?
Atte.

ger

DonGato
Moderator

España
263 Posts
Posted - 23 Oct 2007 :  11:00:51  Ver perfil  Enviar e-mail  Visit DonGato's Homepage
Lo que anda mal es que al poner OR lo que haces es que con que se cumpla una de las condiciones te lo va a mostrar. Vayamos a un ejemplo mas simple para que lo veas.
Nombre pelo Sexo
Antonio moreno h
Susana moreno m
Carlos moreno h
Carmen rubio m
La tabla sería esa, si ponemos la consulta tal y como la has puesto
Select * from personas where sexo=m or pelo=moreno
al estar comparando dos cosas diferentes me va a devolver todos los valores que cumplan, que sean de pelo moreno o que sean mujer, es decir, si te fijas, me devolveria todos los registros.
lo que debes hacer es unir los comparadores en grupos con parentesis y usaar la condicion "and". de esta forma antes de hacer la select piensa que factores deben primar.

En tu caso, justo despues de categoria='guia' ponle un and, de forma que, te seleccione, todos los que sean guia y ADEMAS los que cumplan con el resto de las condiciones.

Edited by - DonGato on 23 Oct 2007 11:03:57Inicio Pagina

ggmacchi
Starting Member

Argentina
20 Posts
Posted - 30 Oct 2007 :  05:51:22  Ver perfil  Enviar e-mail
Don Gato, como va? Gracias por la rta pero sin embargo no me resolveria el problema. El and que me comentas ya lo tengo despues de categoria = 'guia' and nombre.. En el traspaso lo omiti. Sin embargo como decia, no seria la solucion que estaria buscando, pq mi idea es que se pueda buscar segun cualquier palabra. Siguiendo tu ejemplo, quisiera que si la persona pone: "german" seleccionando en un check box la categoria "guia" (todo esto ya esta con un if, elseif bla bla) busque todas las personas que sean guias y ya sea en su descripcion, en su nombre, apellido, o cualquier otro campo busque esa palabra.

Sugerencias???

gerInicio Pagina

alishta7
Starting Member


9 Posts
Posted - 30 Oct 2007 :  17:23:38  Ver perfil  Enviar e-mail
bueno no se me ocurre algo mas y tal vez te resulte engorroso pero has probado agregandole a cada Or que la categoria sea igual a guia o sea agregarle esta condicion a cada or, lo que pasa es que primero te buscas las primeras condiciones luego le dices que "o ciudad...." y sql busca esto en la bd solo con la condicion de la ciudad luego va al otro or y busca esta condicion y asi hasta terminar todo y mostrarte datos que tu no querias... y te muestra los datos filtrados con la guia que fue tu primera condicion y los demas or donde no incluiste que tambien debian cumplir con la condicion de la guia

espero que se entienda, soy algo enredada para explicar


Edited by - alishta7 on 30 Oct 2007 17:27:23

Edited by - alishta7 on 30 Oct 2007 17:30:28Inicio Pagina

DonGato
Moderator

España
263 Posts
Posted - 30 Oct 2007 :  19:15:30  Ver perfil  Enviar e-mail  Visit DonGato's Homepage
con lo que dice alishta7 no debería darle problemas!!


Inicio Pagina

ggmacchi
Starting Member

Argentina
20 Posts
Posted - 31 Oct 2007 :  04:56:57  Ver perfil  Enviar e-mail
Alishta7
IDOLLAAAAAAA
Sirve al 100%!
Muchas gracias.
Lo cuelgo por si a alguien le sirve:

Temp="Select * From recursos Where categoria = 'Guia' and nombre = '%" & UCase(Request("palabra")) & "%' or categoria = 'Guia' and ciudad LIKE '%" & UCase(Request("palabra")) & "%' or categoria = 'Guia' and provincia LIKE '%" & UCase(Request("palabra")) & "%' or ..... etc


gerInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar