Foros del Web » Programando para Internet » PHP »

consulta con cantidad de parametros variables

Estas en el tema de consulta con cantidad de parametros variables en el foro de PHP en Foros del Web. hola a todos , mi duda es la siguiente... deseo buscar ne una tabla de la md por tres parametros que es escoge el usuario......pero ...
  #1 (permalink)  
Antiguo 09/12/2009, 12:09
 
Fecha de Ingreso: abril-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 1
consulta con cantidad de parametros variables

hola a todos , mi duda es la siguiente...

deseo buscar ne una tabla de la md por tres parametros que es escoge el usuario......pero lo mismo puede escoger 1 , 2 o las 3....
quisiera saber si se puede hacer una consulta con un numero de parametros variables....y como seria ..

lo otro que se me ocurre es hacer una para cada caso particular ,pero seria 6 consultas.....suena un poco feo verdad!!!!!!


espero su ayuda y gracias de antemano!!!!!
  #2 (permalink)  
Antiguo 09/12/2009, 12:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: consulta con cantidad de parametros variables

Hacete una funcion.....
  #3 (permalink)  
Antiguo 09/12/2009, 12:25
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: consulta con cantidad de parametros variables

Código php:
Ver original
  1. $consulta = "SELECT * FROM tabla WHERE param1 = '$param1' AND param2 = '$param2' AND param3 = '$param3' ";

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 09/12/2009, 12:38
 
Fecha de Ingreso: abril-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 1
Respuesta: consulta con cantidad de parametros variables

gracias por su respuesta....
el problema que creo que todavia existe es que el usuario lo mismo puede escoger 1 parametro que 2 o 3...
por ejemplo dado esa consulta misma consulta param1 no se le pasa al metodo pk el usuario quiere buscar solo por param2 y param3, esa parametro no existiria... o si se le pasa null creo que tampoco serviria... pk buscaria en la tabla cuando ese param sea null...

gracias de antemano
  #5 (permalink)  
Antiguo 09/12/2009, 12:44
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: consulta con cantidad de parametros variables

Código php:
Ver original
  1. $consulta = "SELECT * FROM tabla WHERE param1 = '$param1' OR param2 = '$param2' OR param3 = '$param3' ";
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 09/12/2009, 12:48
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: consulta con cantidad de parametros variables

¿Algo así?:
Código PHP:
$sql="SELECT * FROM tabla WHERE 1=1";
if(!empty(
$parametro1))
{
    
$sql.=" AND parametro1=$parametro1";
}
if(!empty(
$parametro2))
{
    
$sql.=" AND parametro2=$parametro2";
}
if(!empty(
$parametro3))
{
    
$sql.=" AND parametro3=$parametro3";
}
$sql.=";"
¡Suerte!
  #7 (permalink)  
Antiguo 09/12/2009, 12:49
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: consulta con cantidad de parametros variables

$sql=";"; <-- te falto un punto.. osino todo se reduciria en que sql valdria ";"
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 09/12/2009, 12:50
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: consulta con cantidad de parametros variables

Es verdad Hidek1 , gracias por marcar el error. Edito el post para que no se confundan y ya quede bien. ¡Suerte!
  #9 (permalink)  
Antiguo 09/12/2009, 15:58
 
Fecha de Ingreso: abril-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 1
Respuesta: consulta con cantidad de parametros variables

gracias por su respuestas ..

miren este es el metodo que hice...y el error que me da.. llevo tiempo analizandolo pero no veo donde esta el problema... espero su ayuda y gracias de antemano..

public function Paginado($in,$fin,$targeta)
{
$sql="SELECT * FROM card WHERE 1=1";
if(!empty($targeta[deportes]))
{
$sql.=" AND parametro1=$targeta[deportes]";
}
if(!empty($targeta[marca]))
{
$sql.=" AND parametro2=$targeta[marca]";
}
if(!empty($targeta[anios]))
{
$sql.=" AND parametro3=$targeta[anios]";
}
$sql.="ORDER BY id_card DESC
LIMIT $in,$fin";


$result = mysql_query($sql);

$datos = array();

line 101->>> while ($row = mysql_fetch_object($result))
{
$datos[] = $row;
}
return $datos;
}



esto es lo que me devuelve

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\isagrading\site\c_population_report .php on line 101
  #10 (permalink)  
Antiguo 09/12/2009, 15:59
 
Fecha de Ingreso: abril-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 1
Respuesta: consulta con cantidad de parametros variables

gracias por su respuestas ..

miren este es el metodo que hice...y el error que me da.. llevo tiempo analizandolo pero no veo donde esta el problema... espero su ayuda y gracias de antemano..

public function Paginado($in,$fin,$targeta)
{
$sql="SELECT * FROM card WHERE 1=1";
if(!empty($targeta[deportes]))
{
$sql.=" AND parametro1=$targeta[deportes]";
}
if(!empty($targeta[marca]))
{
$sql.=" AND parametro2=$targeta[marca]";
}
if(!empty($targeta[anios]))
{
$sql.=" AND parametro3=$targeta[anios]";
}
$sql.="ORDER BY id_card DESC
LIMIT $in,$fin";


$result = mysql_query($sql);

$datos = array();

line 101->>> while ($row = mysql_fetch_object($result))
{
$datos[] = $row;
}
return $datos;
}



esto es lo que me devuelve

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in "" on line 101
  #11 (permalink)  
Antiguo 09/12/2009, 16:02
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: consulta con cantidad de parametros variables

Por qué no haces un echo de la consulta SQL así vemos cómo queda (¿los nombres de las columnas son esos (parametro1, parametro2, parametro3)?). ¡Suerte!
  #12 (permalink)  
Antiguo 09/12/2009, 16:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: consulta con cantidad de parametros variables

Código PHP:
$para1 "";
$para2 "";
$para3 "";

$variables "";
$go 0;
if(!empty(
$para1)){
    
$variables .="WHERE para1='$para1'"$go 1;
}

if(!empty(
$para2)){
    if(
$go 0){ $variables .=" AND "; }else{ $variables .="WHERE "; }
    
$variables .="para2='$para2'"$go 2;
}

if(!empty(
$para3)){
    if(
$go 0){ $variables .=" AND "; }else{ $variables .="WHERE "; }
    
$variables .="para3='$para3'";
}

$sql mysql_query("SELECT * FROM tabla $variables");
$data mysql_fetch_array($sql);
    
$something $data['something']; 
  #13 (permalink)  
Antiguo 09/12/2009, 16:24
 
Fecha de Ingreso: abril-2008
Mensajes: 60
Antigüedad: 16 años
Puntos: 1
Respuesta: consulta con cantidad de parametros variables

cierto dggluz me olvide de cambiar las columnas .

problema resuelto , trabaja de maravilla muchisimas gracias ....me fue de gran ayuda
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 00:25.