Foros del Web » Programando para Internet » PHP »

ayuda, sentencia sql con variables vaciass

Estas en el tema de ayuda, sentencia sql con variables vaciass en el foro de PHP en Foros del Web. Hola, tengo un formulario de busqueda en el que pretendo que el usuario pueda dejar campos en blanco a la hora de buscar, pero no ...
  #1 (permalink)  
Antiguo 21/06/2010, 15:38
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
ayuda, sentencia sql con variables vaciass

Hola,

tengo un formulario de busqueda en el que pretendo que el usuario pueda dejar campos en blanco a la hora de buscar, pero no consigo dar con la sentencia sql adecuada para que se me muestren todos los posibles valores. Creo que con un ejemplo lo vais a entender mejor que me explico bastante mal jejej.

Ejemplo:

Imaginar que tengo una BD con varios usuarios que se llamen alex y con su edad correspondiente, mi intencion es que si el usuario introduce alex y edad 12, salga como resultado solo los usuarios que se llamen alex de 12 años.
Bueno hasta aqui me parece sencillo hacerlo pero si el campo de edad lo dejo en blanco, quiero que me salgan todos lo usuarios alex con sus respectivas edades, como puedo hacer esto mediante una sentencia sql??

Existe algun caracter comodin para hacer esto ??

Alguna idea o alternativa??

Gracias y salu2
  #2 (permalink)  
Antiguo 21/06/2010, 15:50
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Mensaje Respuesta: ayuda, sentencia sql con variables vaciass

TIene que armar la sentencia SQL por partes dependiendo la informacion enviada

Primero recibe las vriables del formulario luego hce algo como esto:
Código PHP:
$sentencia "select * from usuario where usuario = '".$usuario."'";
if (
$edad != 0)
$sentencia $sentecia"  and edad =".$edad
y asi con todos los campos con los que necesite jugar;
  #3 (permalink)  
Antiguo 21/06/2010, 15:54
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: ayuda, sentencia sql con variables vaciass

Pero no te bastaría con concatenar un WHERE nombre='Alex' AND edad='12' si son 2 valores es fácil determinar... ahora si hay muchos más campos vacíos vas a tener que hacer un bucle que te compruebe todas las posibilidades e ir dejando o completando espacios vacíos en el query y sobre todo poniendo WHERE y AND en los casos que sean necesarios, quiere decir que también puedes usar un Switch Case... te dejo un ejemplo:

Código PHP:
<?php
$campo1_ind
='';
$campo2_ind='';
$campo3_ind='';
$campo4_ind='';
$n 5;

for(
$x=1;$x<$n;$x++){
    switch (
$x) {
    case 
1:
        if(!empty(
$campo1)){
            
$campo1_ind=' WHERE ';
            
$querycampo1="parte query 1";

        }
    break;
    case 
2:
        if(!empty(
$campo2)){
            if(
$campo1_ind==' WHERE '){
                
$campo2_ind=' AND ';
            }
            else{
                
$campo2_ind=' WHERE ';
            }
            
$querycampo2=" parte query 2";
        }
   break;
    case 
3:
        if(!empty(
$campo3)){
            if(
$campo1_ind==' WHERE ' || $campo2_ind==' WHERE '){
                
$campo3_ind=' AND ';
            }
            else{
                
$campo3_ind=' WHERE ';
            }
            
$querycampo3=" parte query 3";
        }
    break;
    case 
4:
        
/*....*/        
    
break;
    }
}
?>
Al final concatenas las variables $querycampoX con tu query principal.... si hay otra forma más óptima.... bienvenida sea
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 21/06/2010, 16:00
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: ayuda, sentencia sql con variables vaciass

$a=$_post[nombre];
$b=$_post[edad];
if($b=NULL){
$z=mysql_query("select * from tabla where nombre='$_post[nombre]' ");
$y=mysql_fetch_array($z);
do{
echo $y[nombre];
echo $y[edad];
}while($y=mysql_fetch_array($z);
}
else{
$r=mysql_query("select * from tabla where nombre='$_post[nombre]' and edad=$_post[edad] ");
$k=mysql_fetch_array($r);
echo $k[nombre];
echo $k[edad];
}

Última edición por hackjose; 21/06/2010 a las 16:08
  #5 (permalink)  
Antiguo 22/06/2010, 14:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda, sentencia sql con variables vaciass

He utilizado la forma de helacer simplemente porque fue el primero que me posteo, y me funciono sin problemas a la primera.

Pero aun asi gracias a todos por la ayuda.


saludos

Etiquetas: sentencia, sql, variables
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 12:39.