Jump to content
Fórum Script Brasil
  • 0

while em session


Carlos Rocha

Question

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

Edited by Carlos Rocha
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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?

Edited by Carlos Rocha
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...