Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavialieggio

$_SESSION[dados]

Recommended Posts

Ola Pessoal

 

Eu tenho o seguinte trecho de codigo de uma agenda que estou montando:

 

//SE FOR PRA INCLUIR EVENTOS
if(isset($_POST["inclui"]) and $_POST["inclui"]=="inclui")
{
	$descricao	  = $_POST['descricao'];
	$usuario		= $_POST['usuario'];
	$data_inicial 	= $_POST['data_inicial'];
	$hora_inicial	= $_POST['hora_inicial'];
	$data_final		= $_POST['data_final'];
	$hora_final		= $_POST['hora_final'];
	$usuario 		= $_POST['usuario'];

	if(!isset($_SESSION[dados]) or $_SESSION[dados]=="")
	{$_SESSION[dados] = $usuario.$descricao.$data_inicial.$hora_inicial.$data_final.$hora_final;}
	else
	{$_SESSION[dados].=";".$usuario.$descricao.$data_inicial.$hora_inicial.$data_final.$hora_final;}
}

Para exibir eu testei as seguintes formas:

 

//PRIMEIRA
$t= split(";", $_SESSION[dados]);
for($i = 0; $i < count($t); $i++)
{
	echo $t[$i]."<BR>";
}

//OU

//SEGUNDA
$cadastros_separados=split(";",$_SESSION[dados]);
foreach($cadastros_separados as $valor_separado)
{
	echo $valor_separado;
}

So que eu to querendo trabalhar com indices separados, pois tenho que fazer o tratamento da $usuarios, para que ele mostre os nomes escolhidos e nao "Array, Array", pois essa variavel e de um select multiple e é um array.

Como faço pra pegar indices dessa $_SESSION??? :blink:

 

Abraços

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, pelo jeito, você fez um vetor multidimencional, ou seja, uma matriz, certo? :)

 

Você pode resgatar uma matriz da seguinte forma:

 

$_SESSION['linha']['coluna']

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Paulo,

 

Obrigada pela ajuda... :rolleyes:

 

E isso mesmo.. e uma matriz

Mas vamos la:

 

Para resgata-la dentro de um for igual o que eu postei acima, por exemplo, seria:

$names = $_SESSION[dados][usuarios];
		for($j = 0;$j<count($names);$j++)
		{
			$name = $names[$i];
			$consulta  = "SELECT nome FROM pessoa WHERE cod_pessoa = $name";
			$resultado = mysql_query($consulta, $conexao);
			while($linhas = mysql_fetch_array($resultado))
			{
				echo $linhas[nome]."<br>";
				
			}
		}
:huh:

 

Posso trabalhar os indices assim??

 

Abraços,

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Paulo,

 

Bom seria mais ou menos assim entao:

 

$cadastros_separados=split(";",$_SESSION[dados]);
foreach($cadastros_separados as $chave => $valor)
{
	echo $chave."----".$valor."<br>";
}
Mas so que quando mando exibir os resultados dessa forma ele aparece o resultado:

 

0----Arrayreuniao01/02/200808:0001/02/200810:00

1----

2----

Nota que do indice 1 e 2 ele nao trouxe os dados... :wacko:

Da forma que montei ta errada?

 

Abraços

Flavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Significa que não tem valores nestas posições, mas não deixam de existir.

 

Somente a nível de análise da estrutura, faça:

<?php

echo "<pre>";
print_r($_SESSION);
echo "</pre>";

?>

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Paulo,

 

Fazendo teste acima e essa a estrutura:

Array

(

[dados] =>

 

;;;;;)

0--

1--

2--

3--

4--

5--

:blink:

 

Tem outro detalhe tambem, SESSION:

if(!isset($_SESSION[dados]) or $_SESSION[dados]=="")

{$_SESSION[dados] = "<td>".$usuarios."</td><td>".$descricao."</td><td>".$data_inicial."</td><td>".$hora_inicial."</td><td>.".$data_final."</td><td>".$hora_final."</td></tr>";}

else

{$_SESSION[dados].=";<td>".$usuario."</td><td>".$descricao."</td><td>".$data_inicial."</td><td>".$hora_inicial."</td><td>".$data_final."</td><td>".$hora_final."</td></tr>";}

Entao na verdade ele ta montando os valores nas colunas.....

 

Porque sera que nao carrega o valor ali ao lado da chave tambem?

 

Abraços

E desde ja agradeço pela ajuda que ta me dando!!! :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm...

 

Vamos mexer no seu primeiro código, altere para isto:

 

CODE
<?php

 

if( isset($_POST["inclui"]) AND $_POST["inclui"]=="inclui" )

{

$descricao = $_POST['descricao'];

$usuario = $_POST['usuario'];

$data_inicial = $_POST['data_inicial'];

$hora_inicial = $_POST['hora_inicial'];

$data_final = $_POST['data_final'];

$hora_final = $_POST['hora_final'];

$usuario= $_POST['usuario'];

 

if( count($_SESSION['dados']) == 0) $_SESSION['dados'] = array();

array_push($_SESSION['dados'], $usuario.$descricao.$data_inicial.$hora_inicial.$data_final.$hora_final);

}

 

?>

E somente para exibir, use:

 

print_r($_SESSION['dados']);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Paulo,

 

teve algumas mudanças

 

Resultado e esse:

Array

(

[0] => Arrayreuniao01/02/200808:0001/02/200810:00

[1] => Arraypasseio01/02/200808:0001/02/200810:00

)

Maravilha!

Entao agora ele retorna a chave e os valores!

Entendendo o que voce fez:

 

if( count($_SESSION['dados']) == 0) $_SESSION['dados'] = array();
Se SESSION for igual a 0 ele monta array e o atribiu ao array_push, certo!

Mas o $_SESSION ja num e um array?

 

como seria trabalhar com esses resultados em colunas diferentes?

[]´s

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummm.. mais ou menos... :D

 

Se $_SESSION['dados'] não tiver nenhum valor, ou o considerando como um array, não tiver nenhuma posição (seja nulo) crie-o como um array. Na verdade não sei se precisaria disto, mas para desencargo de consciência. ;)

 

Então, para trabalhar com este resultado, vai ter que haver mais mudanças já que você simplesmente fez uma concatenação, ficou tudo junto, uma bagunça só...

 

Teste:

 

<?php

if( isset($_POST["inclui"]) AND $_POST["inclui"]=="inclui" )
{
	$descricao = $_POST['descricao'];
	$usuario = $_POST['usuario'];
	$data_inicial = $_POST['data_inicial'];
	$hora_inicial = $_POST['hora_inicial'];
	$data_final = $_POST['data_final'];
	$hora_final = $_POST['hora_final'];
	$usuario= $_POST['usuario'];

	if( count($_SESSION) == 0) $_SESSION = array();
	array_push($_SESSION, array($usuario, $descricao, $data_inicial, $hora_inicial, $data_final, $hora_final) );
}

?>

E imprima:

print_r($_SESSION);

Agora virou uma matriz. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Paulo,

 

Se $_SESSION['dados'] não tiver nenhum valor, ou o considerando como um array, não tiver nenhuma posição (seja nulo) crie-o como um array. Na verdade não sei se precisaria disto, mas para desencargo de consciência

Valeu pelo esclarecimento!!!!! :D

 

ficou tudo junto, uma bagunça só...

huahuauhauhauhauhauhauhuahuaaa ^_^

 

E a melhor de todas esta trazendo essa bela estrutura

Array
(
	[0] => Array
		(
			[0] => Array
				(
					[0] => 1
					[1] => 2
				)

			[1] => reuniao
			[2] => 01/02/2008
			[3] => 08:00
			[4] => 01/02/2008
			[5] => 10:00
		)

	[1] => Array
		(
			[0] => Array
				(
					[0] => 1
					[1] => 2
					[2] => 3
				)

			[1] => passeio
			[2] => 01/02/2008
			[3] => 08:00
			[4] => 01/02/2008
			[5] => 10:00
		)
)

Show de bola, ne!!!! Graças a voce Paulo, muito obrigada mesmo!!!!

 

Agora eu iria trabalhando $_SESSION[dados][1], $_SESSION[dados][2] .... e assim por diante, correto??

 

Muito obrigada mesmo pela ajuda, orientação, paciencia e atenção!!!!

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Abraços, Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.