Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta no exclusiva

Estas en el tema de Consulta no exclusiva en el foro de Mysql en Foros del Web. Buenas, llevo un tiempo intentando hacer dos formularios, uno para registro, y otro de consulta. Pues bien el de registro lo conseguí hacer, pero el ...
  #1 (permalink)  
Antiguo 08/05/2007, 07:20
Avatar de Kolzer  
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 124
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Consulta no exclusiva

Buenas, llevo un tiempo intentando hacer dos formularios, uno para registro, y otro de consulta. Pues bien el de registro lo conseguí hacer, pero el de consulta se me esta atragantando...

Vereis tengo una base de datos en mysql, con una tabla por ejemplo asi:

Web | Castellano | Ingles | Educativa
web1.com | si | si | no
web2.com | si | no | si


Pues bien a la hora de hacer el formulario de consulta, lo que pretendo es filtrar por algunos campos. La orden de la select que me da problemas sería de este estilo (aplicado a este ejemplo para abreviar):

Código PHP:
tr.query("select web, castellano, ingles, educativa FROM tabla where web = '$_POST[url]' AND castellano = '$_POST[idi_cast]' AND ingles = '$_POST[idi_ing]' AND educativa = '$_POST[educat]';"$conexion
El campo web es un input tipo text, y el resto son checkbox.

Claro cuando se ejecuta esto me coge todos los valores, pero por ejemplo si quiero que encuentre sólo páginas en inglés, dejaría sólo ese campo marcado, pero si lo hago así no me devuelve todas las páginas en inglés, sino todas las páginas en inglés que NO esten en castellano, ni sean educativas... me explico?

Cómo podria hacer para que omitiese los campos que no están marcados?
O existen alternativas mas sencillas? Es que de este tema soy bastante novato y por mucho que busco por internet solo encuentro formularios sencillisimos del tipo: nombre apellido email... y el mio es bastante mas complicado, ya que mezclan checkbox, con campos de texto y radio buttons.
__________________
I'm digging my way to something better...

Última edición por Kolzer; 08/05/2007 a las 08:01
  #2 (permalink)  
Antiguo 08/05/2007, 09:03
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: Consulta no exclusiva

Construye la cadena de forma condicional, así (ejemplo php):

Código PHP:
<?php
   $sql 
=" select web, castellano, ingles, educativa FROM tabla";
   
$sql.=" where web='$_POST[url]'";
   if(isset(
$_POST['idi_cast']))
      
$sql.=" AND ingles = '$_POST[idi_cast]'";
   if(isset(
$_POST['idi_ing']))
      
$sql.=" AND ingles = '$_POST[idi_ing]'";
   if(isset(
$_POST['educat']))
      
$sql.=" AND ingles = '$_POST[educat]'";
   
tr.query($sql);
?>
  #3 (permalink)  
Antiguo 08/05/2007, 09:30
Avatar de Kolzer  
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 124
Antigüedad: 20 años, 9 meses
Puntos: 0
De acuerdo Re: Consulta no exclusiva

Aaaaa que ese punto que añades al final a $sql sirve para concatenar?

Claro asi contruyes la sentencia sql a base de ir añadiendo trozos de cadena.

No se como no se me ha ocurrido

Pues muchisimas gracias, ya entonces lo tendre resuelto (eso espero), gracias!
__________________
I'm digging my way to something better...
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 16:55.