Jump to content


Photo

Session Em Carrinho De Compras


  • Faça o login para participar
1 reply to this topic

#1 danielswater

danielswater

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 04/09/2012, 19:00

fala pessoal blz?
seguinte, estou fazendo um carrinho de compras em php com session. preciso que quando a pessoa for comprar uma roupa por exemplo, que o tamanho que ela escolheu (P,M,G,GG) fosse adicionado na descrição do produto, consigo recuperar o tamanho via get mas não to conseguindo colocar ele na descrição de maneira nenhuma, segue o codigo:

<?php
      session_start();	
        
      if(!isset($_SESSION['carrinho'])){
         $_SESSION['carrinho'] = array();
		 
      }
       
      //adiciona produto
          
         //ADICIONAR CARRINHO
         if($_GET['acao'] == 'add'){			 
			 
            $id = intval($_GET['Buy']);
            if(!isset($_SESSION['carrinho'])){
               $_SESSION['carrinho'][$id] = 1;
			   if(isset($_GET['T'])){
			   $_SESSION['tamanho'] = $_GET['T'];			  	   
			   }
			   else{
				   $_SESSION['tamanho'] = "";				  
				   }
			   
            }else{
               $_SESSION['carrinho'][$id] += 1;
			   if(isset($_GET['T'])){
			   $_SESSION['tamanho'] = $_GET['T'];
			   $i++;	
			   }
			   else{
				   $_SESSION['tamanho'] = "";
				  
				   }
				
            }
		
         }
          
         //REMOVER CARRINHO
         if($_GET['acao'] == 'del'){
            $id = intval($_GET['Buy']);
            if(isset($_SESSION['carrinho'][$id])){
               unset($_SESSION['carrinho'][$id]);
            }
         }
          
         //ALTERAR QUANTIDADE
         if($_GET['acao'] == 'up'){
			 
            if(is_array($_POST['prod'])){
               foreach($_POST['prod'] as $id => $qtd){
                  $id  = intval($id);
                  $qtd = intval($qtd);
                  if(!empty($qtd) || $qtd <> 0){
                     $_SESSION['carrinho'][$id] = $qtd;
                  }else{
                     unset($_SESSION['carrinho'][$id]);
                  }
               }
            }
         }

?>

e p exibir estou fazendo assim:



               <?php
                     if(count($_SESSION['carrinho']) == 0){
                        echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>';
                     }else{
                        include 'admin/classe/Conexao.php';

$con = new Conexao();
$con->Conecta();
                                                               $total = 0;
                        foreach($_SESSION['carrinho'] as $id => $qtd){
										
							
                              $sql   = "SELECT *  FROM produto WHERE id= '$id'";
                              $qr    = mysql_query($sql) or die(mysql_error());
                              $ln    = mysql_fetch_assoc($qr);
                               
                              $descricao  = $ln['descricao'];
                              $preco = number_format($ln['preco'], 2, ',', '.');
                              $sub   = number_format($ln['preco'] * $qtd, 2, ',', '.');
                               
                              $total += $ln['preco'] * $qtd; 
                            
                          echo '<tr>      
                                 <td id="'.$id.'" name="descricao[]">'.$descricao." ".$_SESSION['tamanho'].'</td>
                                 <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" id="prod['.$id.']" /></td>
								 <input type="hidden" name="qtd[]" value="'.$qtd.'"/>
								 <input type="hidden" name="prodID[]" value="'.$id.'"/>
								 <input type="hidden" name="tam[]" value="'.$dt.'"/>
                                 <td>R$ '.$preco.'</td>
                                 <td>R$ '.$sub.'</td>
                                 <td><a onclick="func(\'?acao=del&Buy='.$id.'\')">Remover</a></td>
                              </tr>';
							
							  
                        }
                           $total = number_format($total, 2, ',', '.');
                           echo '<tr>
                                    <td colspan="4">Total</td>
                                    <td>R$ '.$total.'</td>
                              </tr>';
                     }
               ?>


so que o problema e que nao estou conseguindo incrementar a session para que exiba corretamente o tamanho

alguem pode me dar uma ajuda?

po ate consegui armazenar na sessao o tamanho das peças, agora preciso saber como posso percorrer essas duas sessions no mesmo foreach :ponder:

Edição feita por: danielswater, 04/09/2012, 19:00.


#2 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 04/09/2012, 19:07

Tenta criar uma array de dados dos produtos e usa serialize para jogar na session, fica mais fácil, usa session_close tb :P

Sessao : http://www.php.net/m...ook.session.php
Serialize : http://php.net/manua...n.serialize.php

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq