Comunidad de diseño web y desarrollo en internet online

Session-Necesito guardar un gran cantidad de datos.- array[]

Citar            
MensajeEscrito el 10 Abr 2007 11:22 pm
Necesito grabar una gran cantidad de datos, por eso necesito una array.-
Ej.-
Nombre Direccion Edad Telefono Celular Sexo
yo micasa 125 24 425564 97879456 M
Ella sucasa 798 21 546748 89785611 F
... etc

Los necesito guardar en un arreglo, quise hacer un arreglo con sesiones pero no me resulta.-
session_start();
session_register('arreglo');
$arreglo=$_SESSION['arreglo'];
i=0;
$arreglo[numerodatos]++
$arreglo[$arreglo[numerodatos]][nombre]
$arreglo[$arreglo[numerodatos]][direccion]
$arreglo[$arreglo[numerodatos]][edad]
$arreglo[$arreglo[numerodatos]][telefono] ...
$_SESSION['arreglo']=$arreglo;

Alguien puede ayudar a ver cual seria el error que cometi o alguna mejor opcion.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 11 Abr 2007 01:14 am
creo que te estas enredando con los indices y las matrices multidimensionales, hazlo más ordenado algo asi:

Código :

<?php
session_start();
function loadData ()
{
   if (!isset($_SESSION["data"]))
   {
      $_SESSION["data"] = array();
   }
   return $_SESSION["data"];
}

function saveRecord ( $maRecord)
{
   $mlData = loadData();
   array_push($mlData, $maRecord);
   $_SESSION["data"] = $mlData;
}

function makeRecord ( $iaHour, $iaMinutes, $iaSeconds)
{
   $mlRecord = array();
   $mlRecord["hora"] = $iaHour;
   $mlRecord["minutos"] = $iaMinutes;
   $mlRecord["segundos"] = $iaSeconds;
   return $mlRecord;
}


$mlRecord = makeRecord(date("H"), date("i"),date("s"));
saveRecord($mlRecord);

header("Content-type: text/plain");
print_r(loadData());
?>


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 11 Abr 2007 02:48 pm
Una vez necesité algo parecido he hice esto:

Simplemente utilizo un for que me dara el indice o la posición de cada dato, así los tendras por aparte, pero unidos en la session.

utilizo $numero_de_ingresos para almacenar un valor limite

Código :

for($i=1;$i<=$numero_de_ingresos;$i++)
      {
      $_SESSION['nombre'][$i]='$nombre_usuario';
      $_SESSION['edad'][$i]='$edad_usuario';
}



para mostrarlo solo pones de nuevo un for para que te lleve por todo el array de la session

Espero te sirva

Saludos!!!

(y)

Por Jatrix13

Claber

1157 de clabLevel

3 tutoriales

Genero:Masculino  

Villavicencio, Colombia

firefox
Citar            
MensajeEscrito el 11 Abr 2007 09:35 pm
Gracias por las respuestas.
Me gusto bastante la estructura que ocupo el Maikel,
Voy a ver de que manera me puede ayudar, me salto una duda, por que uso la sentencia:
header("Content-type: text/plain");
Yo tengo entendido que es tipo de pagina que devuelve.-

De todas maneras yo agrego campos al array en forma secuencial.- (NO todo de una sola vez), como por ejemplo en cada pagina carga datos, pero son los mismos datos por cada una.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 11 Abr 2007 11:55 pm
El content-type por defecto es de html, pero como print_r me devuelve un texto con saltos de lineas y estos son ignorados en html modifico el content-type de salida a que sea interpretado como texto plano.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Abr 2007 08:09 pm
Intentando complementar el codigo de Maikel, le agrege algunas funciones mas:

<?php
session_start();

function loadData (){
if (!isset($_SESSION["data"])){
$_SESSION["data"] = array();
}
return $_SESSION["data"];
}

function deleteRecord (){
if (isset($_SESSION["data"])){
session_unset();
//unset ($_SESSION["data"]);
echo "siiii";
}
}

function deletedate ($num){
$arreglo =loadData();
unset ($arreglo[$num]);
$_SESSION["data"] = $arreglo;

}

function saveRecord ( $maRecord)
{
$mlData = loadData();
array_push($mlData, $maRecord);
$_SESSION["data"] = $mlData;
}

function makeRecord ( $iaHour, $iaMinutes, $iaSeconds)
{
$mlRecord = array();
$mlRecord["hora"] = $iaHour;
$mlRecord["minutos"] = $iaMinutes;
$mlRecord["segundos"] = $iaSeconds;
return $mlRecord;
}

function loadRecord()
{
$arreglo =loadData();
asort($arreglo);
$i=0;
foreach($arreglo as $i => $v){
echo $arreglo[$i]["hora"];
echo $arreglo[$i]["minutos"];
echo $arreglo[$i++]["segundos"];
echo " ";}
}

deleteRecord (); //... eliminar sesion
deletedate($n); //... eliminar dato($n= posicion del dato dentro del array), en el caso de buscar algun dato para eliminar habria que hacer un foreach en la funcion.-

$mlRecord = makeRecord(date("H"), date("i"),date("s"));
saveRecord($mlRecord);
header("Content-type: text/plain");
print_r(loadData())."<br>";
echo loadRecord(); // Lee el arreglo y nos devuelve los valores.-

?>

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 12 Abr 2007 08:10 pm

Código :

foreach

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 12 Abr 2007 08:11 pm
Disculpen Me equivoque
[/code]<?php
session_start();

function loadData (){
if (!isset($_SESSION["data"])){
$_SESSION["data"] = array();
}
return $_SESSION["data"];
}

function deleteRecord (){
if (isset($_SESSION["data"])){
session_unset();
//unset ($_SESSION["data"]);
echo "siiii";
}
}

function deletedate ($num){
$arreglo =loadData();
unset ($arreglo[$num]);
$_SESSION["data"] = $arreglo;

}

function saveRecord ( $maRecord)
{
$mlData = loadData();
array_push($mlData, $maRecord);
$_SESSION["data"] = $mlData;
}

function makeRecord ( $iaHour, $iaMinutes, $iaSeconds)
{
$mlRecord = array();
$mlRecord["hora"] = $iaHour;
$mlRecord["minutos"] = $iaMinutes;
$mlRecord["segundos"] = $iaSeconds;
return $mlRecord;
}

function loadRecord()
{
$arreglo =loadData();
asort($arreglo);
$i=0;
foreach($arreglo as $i => $v){
echo $arreglo[$i]["hora"];
echo $arreglo[$i]["minutos"];
echo $arreglo[$i++]["segundos"];
echo " ";}
}

deleteRecord (); //... eliminar sesion
deletedate($n); //... eliminar dato($n= posicion del dato dentro del array), en el caso de buscar algun dato para eliminar habria que hacer un foreach en la funcion.-

$mlRecord = makeRecord(date("H"), date("i"),date("s"));
saveRecord($mlRecord);
header("Content-type: text/plain");
print_r(loadData())."<br>";
echo loadRecord(); // Lee el arreglo y nos devuelve los valores.-

?>

Código :

					

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 12 Abr 2007 08:12 pm
Disculpen Me equivoque de nuevo
Es que estaba un poquito apresurado y asi siempre salen las cosas mal, ahora sip

Código :

<?php
session_start();

function loadData (){
if (!isset($_SESSION["data"])){
$_SESSION["data"] = array();
}
return $_SESSION["data"];
}

function deleteRecord (){
if (isset($_SESSION["data"])){
session_unset();
//unset ($_SESSION["data"]);
echo "siiii";
}
}

function deletedate ($num){
$arreglo =loadData();
unset ($arreglo[$num]);
$_SESSION["data"] = $arreglo;

}

function saveRecord ( $maRecord)
{
$mlData = loadData();
array_push($mlData, $maRecord);
$_SESSION["data"] = $mlData;
}

function makeRecord ( $iaHour, $iaMinutes, $iaSeconds)
{
$mlRecord = array();
$mlRecord["hora"] = $iaHour;
$mlRecord["minutos"] = $iaMinutes;
$mlRecord["segundos"] = $iaSeconds;
return $mlRecord;
}

function loadRecord()
{
$arreglo =loadData();
asort($arreglo);
$i=0;
foreach($arreglo as $i => $v){
echo $arreglo[$i]["hora"];
echo $arreglo[$i]["minutos"];
echo $arreglo[$i++]["segundos"];
echo " ";}
}

deleteRecord (); //... eliminar sesion
deletedate($n); //... eliminar dato($n= posicion del dato dentro del array), en el caso de buscar algun dato para eliminar habria que hacer un foreach en la funcion.-

$mlRecord = makeRecord(date("H"), date("i"),date("s"));
saveRecord($mlRecord);
header("Content-type: text/plain");
print_r(loadData())."<br>";
echo loadRecord(); // Lee el arreglo y nos devuelve los valores.-

?>

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.