Ir para conteúdo
Fórum Script Brasil
  • 0

while em session


Carlos Rocha

Pergunta

Gostaria de saber se isso é possível.

while(list(
    $codigo,
    $quantidade,
    $tamanho,
    $cor,
    $codigo_estoque,
    $desconto,
    $preço,
    $estoque
    ) = $_SESSION["MeuCarrinho"]) 
  {
    echo $código;
    ...
  }
Caso não seja, queria saber tem recurso A saida da sessão é:
TCarrinho Object
(
    [item_codigo] => Array
        (
            [0] => 18
            [1] => 18
        )

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

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

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

    [item_codigo_estoque] => Array
        (
            [0] => 132
            [1] => 100
        )

    [item_desconto] => Array
        (
            [0] => 12
            [1] => 12
        )

    [item_preco] => Array
        (
            [0] => 2.0504
            [1] => 2.0504
        )

)

A ideia aqui é um carrinho de compras simples aonde ao invés de fazer busca no banco para saber os valores do produto, grava-los todos na sessão.

Deu certo. Mas agora não estou sabendo como recuperá-los para exibir os valores no carrinho

Grato a quem puder ajudar

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Consegui da forma abaixo:

<?php
  $preco_total=0.00;
  for ($i=0;$i<$_SESSION["MeuCarrinho"]->QuantosItens();$i++)
  {
      $preco_total = $preco_total + $_SESSION["MeuCarrinho"]->item_preco[$i];

      $codigo_produto=$_SESSION["MeuCarrinho"]->item_codigo[$i];
      $quantidade_produto=$_SESSION["MeuCarrinho"]->item_quantidade[$i];
      $codigo_tamnho=$_SESSION["MeuCarrinho"]->item_tamanho[$i];
      $codigo_cor=$_SESSION["MeuCarrinho"]->item_cor[$i];
      $codigo_estoque=$_SESSION["MeuCarrinho"]->item_codigo_estoque[$i];
      $desconto_percentual=$_SESSION["MeuCarrinho"]->item_desconto[$i];
      $preco_com_desconto=$_SESSION["MeuCarrinho"]->item_preco[$i];

..
Agora, preciso arranjar um forma de, a cada produto adicionado ao carrinho, na própria classe carrinho, criar uma função que somasse os valores dos produtos. Tentei da forma abaixo mas não deu certo:
<?php
/*
    Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_tamanho = array();
var $item_cor = array();
var $item_codigo_estoque = array();
var $item_desconto = array();
var $item_preco = array();
var $TotalNota=0.00;
...............
 function ObtemTotalNota()
   {
         $TotalNota=$TotalNota+($this->$item_preco*$this->$item_quantidade);
         return $TotalNota;
   }
.............
}
Dá erro de servidor Também tentei assim mas não deu certo
function ObtemTotalNota()
   {
        //Inicializando parametro
        $posicao = -1; 
        $achou = $this->ObtemPosicao($this->item_codigo_estoque,$posicao);
        if ($achou){
         $TotalNota=$TotalNota+($this->$item_preco*$this->$item_quantidade);
         return $TotalNota;
        }
   }

O que será que esta errado?

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, acho que consegui

for ($i=0;$i<$_SESSION["MeuCarrinho"]->QuantosItens();$i++)
  {
      $preco_total = $preco_total + $_SESSION["MeuCarrinho"]->item_preco[$i];

      $codigo_produto=$_SESSION["MeuCarrinho"]->item_codigo[$i];
      $quantidade_produto=$_SESSION["MeuCarrinho"]->item_quantidade[$i];
......

Agora uma ultima coisa:

Nesse for, terei o código do produto, a cor e o tamanho dentre outras. Isso significa que poderei ter para um mesmo produto, vários lançamentos dependendo da combinação cor/tamanho.

Nesse caso, como faço para conseguir nesse loop for, quando trocar o código do produto, criar duas linhas em branco para separar do produto de baixo?

Link para o comentário
Compartilhar em outros sites

  • 0

Também já consegui.

Agora só me falta resolver o seguinte:

Estou obtendo o erro abaixo quando adiciona uma variável a mais na classe Carrinho,

Notice: Use of undefined constant real - assumed 'real' in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\php\flavio\chinelospuff.com.br\representantes\carrinho_conteudo.php on line 5

Acho que é por causa da forma que estou declarando ela;

<?php
error_reporting(E_ALL);
/*
    Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_tamanho = array();
var $item_cor = array();
var $item_codigo_estoque = array();
var $item_desconto = array();
var $item_preco = array();
var $TotalNota = real;
........
Essa aqui:
var $TotalNota = real;

Ela não é array. Ela é do tipo moeda, real.

Como fazer essa declaração de forma a não obter esse erro?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...