Ir para conteúdo

POWERED BY:

Arquivado

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

biza

[Resolvido] resgatar $_SESSION

Recommended Posts

Amigos estou fazendo um sistema que cada vez que a pessoa adiciona um produto eu queria que ele me grava-se uma session, com um array dos itens contidos nesse produto.

Por favor me ajudem , ja estou morto de cansaço, todo o dia nisso..


foreach ($_SESSION["pro_d"] as $produtos  => $each_item_p) { 
	$item_p = $each_item_p['item_p'];
	$sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
	while ($row = mysql_fetch_array($sql)) {
		$produto = $row["produto"];
		$preco_p = $row["preco"];
		$peso_p = $row["peso"];
		$imagem_p = $row["imagem1"];

	}

A minha ideia é passar todos os dados das linhas que ele for criando para ontra pagina tipo isso :

 

Array ( [0] => Array ( [item_p] => 25 [quantity_p] => 1 ) [1] => Array ( [item_p] => 8 [quantity_p] => 1 ) )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué, a session você transporta ela pra qualquer página que inicie às funções de sessão, digo, qualquer página que você inicia a session, você pode pode recuperar o valor das mesmas.

 

Amigo é o seguinte , para cada produto com a sessão iniciada como "pro_d" eu faço um select , o que pretendo fazer é dessas linhas resultantes do select criar uma nova sessão que contém todos os atributos do produto imagina :

 

produto 1

Array ( [0] => Array ( [item_p] => 25 [quantity_p] => 1 [peso_p] => 1)\

 

produto 2

Array ( [1] => Array ( [item_p] => 26 [quantity_p] => 2 [peso_p] => 5)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, agora que não está entendendo sou eu, tem como explicar melhor ? :o

 

Assim Andre estou fazendo uma loja on-line , tenho uma pagina que processa todas as compras efectudas por cada produto de sessão iniciada com o nome de "pro_d" que equivale ao item 25 por exemplo que é o id do produto eu vou fazer im selecrt de procura na base de dados, com o while eu trago todos os dados da base de dados , o que pretendo é com esses novos dados iniciar nova sessão para os passar para outra folha para fazer o resumo da compra, percebeu?

ip.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, entendi, e porque você não seta em outra sessão durante o while ?

<?php
 foreach ( $_SESSION["pro_d"] as $produtos  => $each_item_p ) { 
             $item_p = $each_item_p['item_p'];
             $sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
             while ($row = mysql_fetch_array($sql)) {
                     $produto = $row["produto"];
                     $preco_p = $row["preco"];
                    $peso_p = $row["peso"];
                     $imagem_p = $row["imagem1"];
		 $_SESSION[ 'produto' ] = $produto;
		 $_SESSION[ 'preco' ] = $preco;
		 // ...
	}

       }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, entendi, e porque você não seta em outra sessão durante o while ?

<?php
 foreach ( $_SESSION["pro_d"] as $produtos  => $each_item_p ) { 
             $item_p = $each_item_p['item_p'];
             $sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
             while ($row = mysql_fetch_array($sql)) {
                     $produto = $row["produto"];
                     $preco_p = $row["preco"];
                    $peso_p = $row["peso"];
                     $imagem_p = $row["imagem1"];
		 $_SESSION[ 'produto' ] = $produto;
		 $_SESSION[ 'preco' ] = $preco;
		 // ...
	}

       }

Já fiz isso andre o problema é que na outra pagina como resgato os dados , imagina que a pessoa adicionou 5 produtos com essas caracteristicas como falo para que ele mostre 5 vezes produtos diferentes com as caracteristicas?

Fiz desta forma para criar nova sessão:

 

<?php
 foreach ( $_SESSION["pro_d"] as $produtos  => $each_item_p ) { 
             $item_p = $each_item_p['item_p'];
             $sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
             while ($row = mysql_fetch_array($sql)) {
                     $produto = $row["produto"];
                     $preco_p = $row["preco"];
                    $peso_p = $row["peso"];
                     $imagem_p = $row["imagem1"];
		 $produtos['produto']= $produto;
		 $produtos['preco']= $preco;
                        $_SESSION['produtos']=$produtos;
		 // ...
	}

       }

A sessão criada não me guarda as 5 sessoes distintas

Na pagina que voce viu na imagem tenho o seguinte código:

foreach ($_SESSION['produtos'] as $pro) {

echo'<div id="caixa_produto">
<div id="imagem_produto"></div>
<div id="nome_produto">Descritivo:</div>
<div id="caixa_detalhe">
<div id="item_produto_A">Quantidade:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Preço/Unit:</div><div id="item_produto_B"> EUR</div>
<div id="item_produto_A">Peso Kg:</div>
<div id="item_produto_B"> Kg</div>
<div style="clear: both;"></div>
<div id="item_produto_A">Preço Total:</div>
<div id="item_produto_B">EUR</div>
<div id="item_produto_A">Entrega:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Tax. Transp.:</div><div id="item_produto_B"></div>
</div>
<div style="clear: both;"></div>
</div>';
}
?>

que estarei a fazer de errado , ou que não estarei a fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, mas pra isso, você teria que gravar em um array multi-dimensional.

<?php
   foreach ( $_SESSION["pro_d"] as $produtos  => $each_item_p ) { 
             $item_p = $each_item_p['item_p'];
	$x = 0 ;
             $sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
             while ($row = mysql_fetch_array($sql)) {
                        $produtos['produto']= $produto;
                        $produtos['preco']= $preco;

                        // ...
               }
	  $_SESSION[ $x ] = $produtos;
	  ++$x;

       }

 

<?php
foreach ($_SESSION['produtos'] as $pro) {

echo'<div id="caixa_produto">
<div id="imagem_produto"></div>
<div id="nome_produto">Descritivo:</div>
<div id="caixa_detalhe">
<div id="item_produto_A">Quantidade:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Preço/Unit:</div>', $pro[ 'preco' ] ,'<div id="item_produto_B"> EUR</div>
<div id="item_produto_A">Peso Kg:</div>
<div id="item_produto_B"> Kg</div>
<div style="clear: both;"></div>
<div id="item_produto_A">Preço Total:</div>
<div id="item_produto_B">EUR</div>
<div id="item_produto_A">Entrega:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Tax. Transp.:</div><div id="item_produto_B"></div>
</div>
<div style="clear: both;"></div>
</div>';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro andre na pagina de resumo continuo a não obter qualquer produto .

fiz um print_r e mostra o seguinte :

Array ( [produtos] => Array ( [produto] => Branco Colheita Selec.2009 )

ou seja em 4 produtos adicionados é o ultimo produto que se adicionou não esta a fazer o array de produtos($sessoes) estes são os codigos utilizador:

Pagina 1:

foreach ($_SESSION["pro_d"] as  $each_item_p) { 
	$item_p = $each_item_p['item_p'];
	$x = 0 ;
	$sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
	while ($row = mysql_fetch_array($sql)) {
		$produto = $row["produto"];
		$preco_p = $row["preco"];
		$peso_p = $row["peso"];
		$imagem_p = $row["imagem1"];

		$produtos['produto'] = $produto;
		$produtos['preco'] = $preco_p;


	}
	$_SESSION[ $x ] = $produtos;
        ++$x;
}
?>

 

Pagina 2:

<?php
$dir1="produtos/img_pro/";

foreach ($_SESSION['produtos'] as $pro) {

echo'<div id="caixa_produto">
<div id="imagem_produto"></div>
<div id="nome_produto">Descritivo: '.$_SESSION['produtos']['produto'].'</div>
<div id="caixa_detalhe">
<div id="item_produto_A">Quantidade:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Preço/Unit:</div><div id="item_produto_B"> EUR</div>
<div id="item_produto_A">Peso Kg:</div>
<div id="item_produto_B"> Kg</div>
<div style="clear: both;"></div>
<div id="item_produto_A">Preço Total:</div>
<div id="item_produto_B">EUR</div>
<div id="item_produto_A">Entrega:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Tax. Transp.:</div><div id="item_produto_B"></div>
</div>
<div style="clear: both;"></div>
</div>';
}
?>

Já nem sei que fazer, obrigado por seu tempo dispensado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei andre mais uma vez me desculpa, mas olha ai , fiz ai tudo direitinho, o primeiro codigo resulta nisso dessa primeira pagina:

Codigo 1:

foreach ($_SESSION["pro_d"] as  $each_item_p) { 
               $item_p = $each_item_p['item_p'];
$x = 0 ;
	$sql = mysql_query("SELECT tbl_produto.id_produto, tbl_produto.produto, tbl_produto.preco, tbl_produto.peso, tbl_imagem_produto.produto_id, tbl_imagem_produto.imagem1 FROM tbl_produto JOIN tbl_imagem_produto WHERE tbl_produto.id_produto = tbl_imagem_produto.produto_id AND tbl_produto.id_produto=".mysql_real_escape_string((int)$item_p));
	while ($row = mysql_fetch_array($sql)) {
		$produto = $row["produto"];
		$preco_p = $row["preco"];
		$peso_p = $row["peso"];
		$imagem_p = $row["imagem1"];

		$produtos['produto'] = $produto;
		$produtos['preco'] = $preco_p;


	}
	$_SESSION[ $x ] = $produtos;
        ++$x;

1.png

Codigo 2:

<?php
$dir1="produtos/img_pro/";

foreach ($_SESSION['produtos'] as $pro) {

echo'<div id="caixa_produto">
<div id="imagem_produto"></div>
<div id="nome_produto">Descritivo:</div>
<div id="caixa_detalhe">
<div id="item_produto_A">Quantidade:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Preço/Unit:</div><div id="item_produto_B">', $pro[ 'preco' ] ,' EUR</div>
<div id="item_produto_A">Peso Kg:</div>
<div id="item_produto_B"> Kg</div>
<div style="clear: both;"></div>
<div id="item_produto_A">Preço Total:</div>
<div id="item_produto_B">EUR</div>
<div id="item_produto_A">Entrega:</div><div id="item_produto_B"></div>
<div id="item_produto_A">Tax. Transp.:</div><div id="item_produto_B"></div>
</div>
<div style="clear: both;"></div>
</div>';
}
?>

2.png

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.