Foros del Web » Programando para Internet » PHP »

Variables de Session

Estas en el tema de Variables de Session en el foro de PHP en Foros del Web. Buenas tardes amigos de foros del web.... estoy empezando a manejar variables de sesion y me he visto en un gran lio... Estoy haciendo un ...
  #1 (permalink)  
Antiguo 31/10/2015, 11:53
 
Fecha de Ingreso: octubre-2015
Mensajes: 7
Antigüedad: 8 años, 6 meses
Puntos: 0
Variables de Session

Buenas tardes amigos de foros del web.... estoy empezando a manejar variables de sesion y me he visto en un gran lio...
Estoy haciendo un odontograma y si sigo la secuencia de codigos que estoy haciendo terminare teniendo mas de 262 variables de sesion. se puede optimizar eso.
he aqui el codigo php

<?php
session_start();
//Recibo la Variable diagnostico: Sano / Amalgama / FX Dentaria / Caries etc.....
if(isset($_GET["diagnostico"]))
{
$diag=$_GET["diagnostico"];
}
else
{
$diag=1;
}

//Recibo la Variable odontograma: Pieza#/Pieza#-1/Pieza#-2/Pieza#-3/Pieza#-4 etc...
$_SESSION["m18"]=$_GET["m18"];
if($_SESSION["m18"]==1)
{
if($diag == 1) $_SESSION["fm18_1"]="#FFFFFF";
if($diag == 2) $_SESSION["fm18_1"]="#666666";
if($diag == 3) $_SESSION["fm18_1"]="#FF9900";
if($diag == 4) $_SESSION["fm18_1"]="#FF0000";
if($diag == 5) $_SESSION["fm18_1"]="#0000FF";
if($diag == 6) $_SESSION["fm18_1"]="#FFFF00";
if($diag == 7) $_SESSION["fm18_1"]="#00FF00";
if($diag == 8) $_SESSION["fm18_1"]="#00FFFF";
}
if($_SESSION["m18"]==2)
{
if($diag == 1) $_SESSION["fm18_2"]="#FFFFFF";
if($diag == 2) $_SESSION["fm18_2"]="#666666";
if($diag == 3) $_SESSION["fm18_2"]="#FF9900";
if($diag == 4) $_SESSION["fm18_2"]="#FF0000";
if($diag == 5) $_SESSION["fm18_2"]="#0000FF";
if($diag == 6) $_SESSION["fm18_2"]="#FFFF00";
if($diag == 7) $_SESSION["fm18_2"]="#00FF00";
if($diag == 8) $_SESSION["fm18_2"]="#00FFFF";
}
if($_SESSION["m18"]==3)
{
if($diag == 1) $_SESSION["fm18_3"]="#FFFFFF";
if($diag == 2) $_SESSION["fm18_3"]="#666666";
if($diag == 3) $_SESSION["fm18_3"]="#FF9900";
if($diag == 4) $_SESSION["fm18_3"]="#FF0000";
if($diag == 5) $_SESSION["fm18_3"]="#0000FF";
if($diag == 6) $_SESSION["fm18_3"]="#FFFF00";
if($diag == 7) $_SESSION["fm18_3"]="#00FF00";
if($diag == 8) $_SESSION["fm18_3"]="#00FFFF";
}
if($_SESSION["m18"]==4)
{
if($diag == 1) $_SESSION["fm18_4"]="#FFFFFF";
if($diag == 2) $_SESSION["fm18_4"]="#666666";
if($diag == 3) $_SESSION["fm18_4"]="#FF9900";
if($diag == 4) $_SESSION["fm18_4"]="#FF0000";
if($diag == 5) $_SESSION["fm18_4"]="#0000FF";
if($diag == 6) $_SESSION["fm18_4"]="#FFFF00";
if($diag == 7) $_SESSION["fm18_4"]="#00FF00";
if($diag == 8) $_SESSION["fm18_4"]="#00FFFF";
}
if($_SESSION["m18"]==5)
{
if($diag == 1) $_SESSION["fm18_5"]="#FFFFFF";
if($diag == 2) $_SESSION["fm18_5"]="#666666";
if($diag == 3) $_SESSION["fm18_5"]="#FF9900";
if($diag == 4) $_SESSION["fm18_5"]="#FF0000";
if($diag == 5) $_SESSION["fm18_5"]="#0000FF";
if($diag == 6) $_SESSION["fm18_5"]="#FFFF00";
if($diag == 7) $_SESSION["fm18_5"]="#00FF00";
if($diag == 8) $_SESSION["fm18_5"]="#00FFFF";
}
if($_SESSION["m18"]==6)
{
if($diag == 1)
{
unset($_SESSION["style"]);
unset($_SESSION["fm18_1"]); unset($_SESSION["fm18_2"]);
unset($_SESSION["fm18_3"]); unset($_SESSION["fm18_4"]);
unset($_SESSION["fm18_5"]);

}
if($diag == 9) $_SESSION["style"]="endodoncia";
if($diag == 10) $_SESSION["style"]="corona";
if($diag == 11) $_SESSION["style"]="ausente";
if($diag == 12) $_SESSION["style"]="implante";
if($diag == 13) $_SESSION["style"]="extraer";
if($diag == 14) $_SESSION["style"]="lcnc";
}

$_SESSION["m17"]=$_GET["m17"];
if($_SESSION["m17"]==1)
{
if($diag == 1) $_SESSION["fm17_1"]="#FFFFFF";
if($diag == 2) $_SESSION["fm17_1"]="#666666";
if($diag == 3) $_SESSION["fm17_1"]="#FF9900";
if($diag == 4) $_SESSION["fm17_1"]="#FF0000";
if($diag == 5) $_SESSION["fm17_1"]="#0000FF";
if($diag == 6) $_SESSION["fm17_1"]="#FFFF00";
if($diag == 7) $_SESSION["fm17_1"]="#00FF00";
if($diag == 8) $_SESSION["fm17_1"]="#00FFFF";
}
if($_SESSION["m17"]==2)
{
if($diag == 1) $_SESSION["fm17_2"]="#FFFFFF";
if($diag == 2) $_SESSION["fm17_2"]="#666666";
if($diag == 3) $_SESSION["fm17_2"]="#FF9900";
if($diag == 4) $_SESSION["fm17_2"]="#FF0000";
if($diag == 5) $_SESSION["fm17_2"]="#0000FF";
if($diag == 6) $_SESSION["fm17_2"]="#FFFF00";
if($diag == 7) $_SESSION["fm17_2"]="#00FF00";
if($diag == 8) $_SESSION["fm17_2"]="#00FFFF";
}
if($_SESSION["m17"]==3)
{
if($diag == 1) $_SESSION["fm17_3"]="#FFFFFF";
if($diag == 2) $_SESSION["fm17_3"]="#666666";
if($diag == 3) $_SESSION["fm17_3"]="#FF9900";
if($diag == 4) $_SESSION["fm17_3"]="#FF0000";
if($diag == 5) $_SESSION["fm17_3"]="#0000FF";
if($diag == 6) $_SESSION["fm17_3"]="#FFFF00";
if($diag == 7) $_SESSION["fm17_3"]="#00FF00";
if($diag == 8) $_SESSION["fm17_3"]="#00FFFF";
}
if($_SESSION["m17"]==4)
{
if($diag == 1) $_SESSION["fm17_4"]="#FFFFFF";
if($diag == 2) $_SESSION["fm17_4"]="#666666";
if($diag == 3) $_SESSION["fm17_4"]="#FF9900";
if($diag == 4) $_SESSION["fm17_4"]="#FF0000";
if($diag == 5) $_SESSION["fm17_4"]="#0000FF";
if($diag == 6) $_SESSION["fm17_4"]="#FFFF00";
if($diag == 7) $_SESSION["fm17_4"]="#00FF00";
if($diag == 8) $_SESSION["fm17_4"]="#00FFFF";
}
if($_SESSION["m17"]==5)
{
if($diag == 1) $_SESSION["fm17_5"]="#FFFFFF";
if($diag == 2) $_SESSION["fm17_5"]="#666666";
if($diag == 3) $_SESSION["fm17_5"]="#FF9900";
if($diag == 4) $_SESSION["fm17_5"]="#FF0000";
if($diag == 5) $_SESSION["fm17_5"]="#0000FF";
if($diag == 6) $_SESSION["fm17_5"]="#FFFF00";
if($diag == 7) $_SESSION["fm17_5"]="#00FF00";
if($diag == 8) $_SESSION["fm17_5"]="#00FFFF";
}
if($_SESSION["m17"]==6)
{
if($diag == 1)
{
unset($_SESSION["style17"]);
unset($_SESSION["fm17_1"]); unset($_SESSION["fm17_2"]);
unset($_SESSION["fm17_3"]); unset($_SESSION["fm17_4"]);
unset($_SESSION["fm17_5"]);

}
if($diag == 9) $_SESSION["style17"]="endodoncia";
if($diag == 10) $_SESSION["style17"]="corona";
if($diag == 11) $_SESSION["style17"]="ausente";
if($diag == 12) $_SESSION["style17"]="implante";
if($diag == 13) $_SESSION["style17"]="extraer";
if($diag == 14) $_SESSION["style17"]="lcnc";
}
?>

En total son 52 Piezas en la ondodoncia y cada pieza contiene 6 partes si multiplicamos esto tendria 312 variables de sesion... alguien me puede ayudar a optimizar esto.
se los voy a agradecer...
  #2 (permalink)  
Antiguo 31/10/2015, 12:12
 
Fecha de Ingreso: octubre-2015
Ubicación: España
Mensajes: 21
Antigüedad: 8 años, 6 meses
Puntos: 6
Respuesta: Variables de Session

Por supuesto que lo puedes optimizar, puedes guardar sólo una variable de sesión que contenga un array con las 52 piezas y sus 6 partes.

Código PHP:
<?php
    $_SESSION
["odontograma"] = array(
        
=> array("parte1","parte2","parte3","parte4","parte5","parte6"),
        
=> array("parte1","parte2","parte3","parte4","parte5","parte6"),
        
=> array("parte1","parte2","parte3","parte4","parte5","parte6"),
        
//...
        
50 => array("parte1","parte2","parte3","parte4","parte5","parte6"),
        
51 => array("parte1","parte2","parte3","parte4","parte5","parte6"),
        
52 => array("parte1","parte2","parte3","parte4","parte5","parte6")
    );
?>
Sólo tienes que recorrer bien los GET o formar uno con un string propio que separe las 52 piezas con sus 6 partes o directamente un JSON por GET y el mismo json_decode() te parsea en un array() ese string.

Con el array puedes acceder facilmente a los datos y operar con éstos.

Un saludo!
  #3 (permalink)  
Antiguo 31/10/2015, 12:37
 
Fecha de Ingreso: octubre-2015
Mensajes: 7
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Variables de Session

fbadiola me lokeaste.... dime paso a paso lo que debo hacer ya que es nuevo esta parte de sesiones que estoy desarrolando, que debo estudiar y que ejemplos seguir....
Lo que me explicas esta entendible pero a que te refieres con... recorrer bien los GET o formar uno con un string propio que separe las 52 piezas con sus 6 partes o directamente un JSON por GET y el mismo json_decode() te parsea en un array() ese string. nunca he manejado arrays ...
supongo que puedo hacer esto
<?php
$_SESSION["odontograma"] = array(
0 => array("$_GET[m18_1]","$_GET[m18_2]","$_GET[m18_3]","$_GET[m18_4]","$_GET[m18_5]","$_GET[m18_6]"),
1 => array("parte1","parte2","parte3","parte4","parte5" ,"parte6"),
2 => array("parte1","parte2","parte3","parte4","parte5" ,"parte6"),
//...
50 => array("parte1","parte2","parte3","parte4","parte5" ,"parte6"),
51 => array("parte1","parte2","parte3","parte4","parte5" ,"parte6"),
52 => array("parte1","parte2","parte3","parte4","parte5" ,"parte6")
);
?>
o me equivoco ... pero como muestro esos valores. Agradezco tu tiempo

Última edición por piro040815; 31/10/2015 a las 12:48
  #4 (permalink)  
Antiguo 31/10/2015, 15:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Variables de Session

Saludo
Creo que lo mejor sería manejar una base de datos
para mostrar la información del odontograma,
manejar eso en variables de sesión, sí bien se puede hacer,
el procesamiento se hará un poco más lento por la carga
de tanta variable en sesión.

En cuanto al array, sí, esa es la manera en que se podría hacer,
y para mostrarlos se deberá recorrer el array, y a su vez como
cada posición es otro array, se debe recorrer ese otro.

Ej
Código PHP:
for....$i...(sizeof($_SESSION['odontograma'])
{
   for... 
$j(sizeof($_SESSION['odontograma'][$i])
         echo 
$_SESSION['odontograma'][$i][$j];

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 31/10/2015, 16:32
 
Fecha de Ingreso: octubre-2015
Ubicación: España
Mensajes: 21
Antigüedad: 8 años, 6 meses
Puntos: 6
Respuesta: Variables de Session

Efectivamente, como te dice el compañero mortiprogramador, debes tratar los arrays como una base de datos simple en vez de consultar tantas veces el archivo de sesiones.

A lo que me refería, es que pasas también varios datos por GET ¿cierto?
A lo mejor sería más recomendable pasar un sólo parámetro GET en la cabecera y extraer todos los datos desde ese único parámetro, pero eso, ya es cosa de cada programador y como lo quiera realizar según la aplicación que esté desarrollando.

Un saludo!!
  #6 (permalink)  
Antiguo 31/10/2015, 17:55
 
Fecha de Ingreso: octubre-2015
Mensajes: 7
Antigüedad: 8 años, 6 meses
Puntos: 0
Respuesta: Variables de Session

Hola, equipo de foros del web.... Gracias por su tiempo, les cuento un poco los valores get los paso click x click segun la seleccion del diagnostico a la parte de la pieza del diente escogido.
ejemplo
Diagnostico: caries Click
Odontograma: Pieza m18_1 click se cambia de color la celda de la pieza del diente m18_1
y asi sucesivamente

tengo claro el ejemplo de $_SESSION["odontograma"]=array() pero nose como aplicarlo.... tengo que estudiar mas y ver otros ejemplos a seguir... disculpen mi brutes.... ya estoy reestresado. mañana continuare investigando.... Muhas Gracias

Etiquetas: session, variable, 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 06:45.