Foros del Web » Programando para Internet » PHP »

Duda con consulta

Estas en el tema de Duda con consulta en el foro de PHP en Foros del Web. Estoy haciendo un sistema de busqueda para un sitio web que estoy realizando. Ahora mi duda es como realizar la consulta cuando el usuario se ...
  #1 (permalink)  
Antiguo 12/04/2004, 20:37
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Duda con consulta

Estoy haciendo un sistema de busqueda para un sitio web que estoy realizando. Ahora mi duda es como realizar la consulta cuando el usuario se le ocurra marcar todos los checkbox que he dado como opciones. Tengo 10 checkbox. Cada uno diferente como era de esperarse claro . El código más o menos es este:
Código PHP:
if(isset($_POST['noticias']){
                 
$query mysql_query("SELECT idnoticia, titulo FROM noticias WHERE titulo LIKE '%".$_POST['word']."%' OR resumen LIKE '%".$_POST['word']."%' OR ampliacion LIKE '%".$_POST['word']."%' OR autor LIKE '%".$_POST['word']."%' OR referencia LIKE '%".$_POST['word']."%' "");"
                 
while($row=mysql_fetch_assoc($query)){
//aqui realizo las acciones
                 
}
                } 
pero y cuando el usuario me marque los 10 checkbox para buscar en todas las categoria, puedo hacer la consulta en una sola sentencia o debo hacerlo en mas de una. Orientenme que ando medio perdido.

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 13/04/2004, 06:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
que son "categorías" en tu tabla? .. o son tablas difentes?

Según lo que veo .. ¿debo entender como "categoria" a un campo de una sóla tabla? ...

Si es así .. si dispones de N opciones que van a decidir si se va a buscar en ese campo o no ... debes componer tu sentencia SQL con tantos bloques campo LIKE '$buscar' OR ... como opciones de esos checkbox seleccionen ..

Date cuenta que para "PHP" una sentencia SQL no es más que una cadena de caracteres (string) así que tendrás que trabajar tus condicionales apra ir componiendo esos bloques según esten marcadas tus opciones en los checkbox.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 13/04/2004, 07:46
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
No mira...

Deja ver si me explico un poco mejor. El sistema de búsqueda tiene un campo input donde se pone la cadena a buscar y tiene 10 checkbox con textos de la siguiente forma:
chk01. Libro de Visitas
chk02. Postgrados
chk03. Estrategias
chk04. Claustro
chk05. Noticias
chk06. Descargas
chk0n. .....
entonces es lógico que el usuario quiera realizar una búsqueda por un solo criterio(le llamo criterio a los checkbox, es decir, un criterio sería postgrados) o por varios. Entonces mi duda está en si se puede implementar algún tipo de función que me permita optimizar mucho más mi búsqueda. Por ejemplo, si el usuario marco el chk01 o sea Libro de Visitas, yo se que mi consulta sería algo como esto:
Código PHP:
 $query mysql_query("SELECT idfirma, nick FROM librodevisitas WHERE nick LIKE '%".$_POST['palabra']."%' OR correo LIKE '%".$_POST['palabra']."%' OR comentarios LIKE '%".$_POST['palabra']."%' OR pais LIKE '%".$_POST['palabra']."%'"); 
y así sucesivamente para cada uno de los checkbox pero si al usuario se le ocurrió marcar el chk01 y el chk02 entonces la consulta sería así:
Código PHP:
 $query mysql_query("SELECT lvisitas.idfirma, lvisitas.nick, post.idpostgrado, post.titulo FROM librodevisitas lvisitas, postgrados post WHERE lvisitas.nick LIKE '%".$_POST['palabra']."%' OR lvisitas.correo LIKE '%".$_POST['palabra']."%' OR lvisitas.comentarios LIKE '%".$_POST['palabra']."%' OR lvisitas.pais LIKE '%".$_POST['palabra']."%' OR post.titulo LIKE '%".$_POST['palabra']."%' OR post.objetivos LIKE '%".$_POST['palabra']."%' OR post.sistemadeconocimientos LIKE '%".$_POST['palabra']."%' OR post.bibliografia LIKE '%".$_POST['palabra']."%' OR post.webgrafiaLIKE '%".$_POST['palabra']."%'"); 
pero si ahora al usuario se le ocurrio marcar los 10 checkbox ¿que hago?

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 13/04/2004, 11:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues ... tienes que componer tu sentencia SQL con tantas combinaciones posibles para generar una sentencia SQL u otra dependiendo de esos checkbox seleccionados.

Ahora .. el proceso se puede automatizar usando arrays con los nombres de tus tablas a buscar y bucles para generar esas sentencias según checkbox selecciondos...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 13/04/2004, 13:54
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Pos eso mismo

Eso mismo es lo que quiero que me den una explicación a ver como armo todo esto.

Salu2
__________________
Ing. Reynier Pérez Mira
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 18:08.