Foros del Web » Programando para Internet » PHP »

Parametros con varias opciones

Estas en el tema de Parametros con varias opciones en el foro de PHP en Foros del Web. Hola phperos, necesito vuestra ayuda. Veréis tengo una función con dos parametros, algo así mas o menos: Código PHP: $funcion ( parametroA ,  parametroB );  ...
  #1 (permalink)  
Antiguo 28/03/2011, 01:48
 
Fecha de Ingreso: julio-2007
Ubicación: Málaga
Mensajes: 600
Antigüedad: 16 años, 9 meses
Puntos: 56
Parametros con varias opciones

Hola phperos, necesito vuestra ayuda. Veréis tengo una función con dos parametros, algo así mas o menos:

Código PHP:
$funcion(parametroAparametroB); 
Supongamos que esto lo uso para mostrar una lista de vehículos. Tengo varias categorías para los vehículos, y a cada una le asigno un número, por ejemplo:

turismos = 1
deportivos = 2
biplazas = 3
camiones = 4

El parámetroA lo uso para indicarle el número de la categoría que quiero mostrar. Entonces si quiero mostrar todos los turismos lo pongo así:

Código PHP:
$funcion(1parametroB); 
Hasta aquí todo perfecto, el problema viene cuando quiero mostrar 2 categorías a la vez, no se como indicarlo, he probado varias cosas pero no funcionan:

Código PHP:
$funcion(12parametroB); 
Código PHP:
$funcion(or 2parametroB); 
Código PHP:
$funcion(and 2parametroB); 
Código PHP:
$funcion((12), parametroB); 
Código PHP:
$funcion((or 2), parametroB); 
Código PHP:
$funcion(array(12), parametroB); 
etc, etc...

Alguien sabe como puedo hacer esto??? Muchas gracias a todos de antemano!!!

Última edición por CorpseOfSteel; 28/03/2011 a las 03:06
  #2 (permalink)  
Antiguo 28/03/2011, 03:30
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: Parametros con varias opciones

Hola CorpseOfSteel,

si solo tienes 4 categorias puedes hacerlo de esta manera:

En el parametroA puedes poner las categorias que quieras por ejemplo:
$funcion(12, parametroB); en el caso de querer 1y 2
$funcion(13, parametroB); en el caso de querer 1y 3
$funcion(124, parametroB); en el caso de querer 1,2y 4

Y modificas la funcion para que
1º cuente el número de carateres de la variable
2ª separe esta en unidades de 1 caracter
3ª uses los valores ya separados para mostrar los resultados

Te pongo un ejemplo que te separa los caracteres, sólo falta que los metas en un array

$longitud = strlen($parametroA);
$inicio = 0;
while($longitud != $inicio)
{
print (substr($parametroA,$inicio,1));
print ("<br>\n");
$inicio++;
}
  #3 (permalink)  
Antiguo 28/03/2011, 03:49
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Parametros con varias opciones

También podrias hacer de poner los parametros por defecto, del tipo:

funcion($parametroB, $categoria1=null, $categoria2=null, $categoria3=null, $categoria4=null);

funcion($parametroB, 1);

funcion($parametroB, 1,3,4);

etc...

Eso va a gustos.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #4 (permalink)  
Antiguo 28/03/2011, 04:21
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Parametros con varias opciones

Yo creo que usando una matriz para ese primer parametro no tendrias que tener problemas, te pongo un ejemplo

Código PHP:
$matriz_categorias = array("1" "3");

mostrar_categorias($matriz_categorias ,  $parametroB); 
Luego la funcion le añades un parametro foreach para que cree una consulta solo con dichas categorias

Código PHP:
function mostrar_categorias($cat $parametroB) {

// código....

    
foreach ($cat as $categoria) {
        if (
$i 1) {
            
$concat "WHERE ";
            
$i++;
        }
        else {
            
$concat " OR ";
        }
        
$var $concat."car = '$categoria'";

        
// y concatenas la consulta
        
$filtro .= $var;
    }
    
    
$consulta "SELECT * FROM tabla $filtro";
    
// más codigo...


El resultado de $consulta seria:
SELECT * FROM tabla WHERE car = '1' OR car = '3'

Espero que te sirva de algo. Saludos.
  #5 (permalink)  
Antiguo 28/03/2011, 05:39
 
Fecha de Ingreso: julio-2007
Ubicación: Málaga
Mensajes: 600
Antigüedad: 16 años, 9 meses
Puntos: 56
Respuesta: Parametros con varias opciones

Muchas gracias a todos! Al final hice la solución que dijo Vallu y ya está arreglado. Muchas Gracias a los tres

Etiquetas: opciones, parametros
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 11:06.