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

carrinho com sessao esta inserindo valores iguais para todos


eberton

Pergunta

galera tenho esse script que originalmente foi criado por "davidchc" nos modificamos alguns itens.

o negocio é o seguinte, não estou conseguindo verificar o valor do produto junto com o produto escolhido, somente isso:

se puderem me ajudar agradeço:

banco:

--
-- Estrutura da tabela `prod`
--

CREATE TABLE IF NOT EXISTS `prod` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(30) NOT NULL,
  `descricao` text NOT NULL,
  `tipo` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6;

--
-- Extraindo dados da tabela `prod`
--

INSERT INTO `prod` (`id`, `nome`, `descricao`, `tipo`) VALUES
(1, 'Pizza de Calabreza', '', ''),
(2, 'Pizza de Atum', '', ''),
(3, 'Pizza Vegetariana', '', ''),
(4, 'Pizza Portuguesa', '', ''),
(5, 'Pizza Mista', '', '');

-- --------------------------------------------------------


--
-- Estrutura da tabela `tamanho`
--

CREATE TABLE IF NOT EXISTS `tamanho` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tamanho` varchar(20) NOT NULL,
  `valor` decimal(12,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5;

--
-- Extraindo dados da tabela `tamanho`
--

INSERT INTO `tamanho` (`id`, `tamanho`, `valor`) VALUES
(1, 'Pequena', '11.00'),
(2, 'Media', '20.00'),
(3, 'Grande', '25.00'),
(4, 'Super', '30.00');
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Carrinho TCC</title>
        </head>

        <body>

       <?
       require("conexao.php");
$preço = mysql_query("SELECT * FROM tamanho");
        while($ln = mysql_fetch_array($preço)){
            $t  = $ln['tamanho'];
            $v  = $ln['valor'];
            $id = $ln['id'];
            
          if($t == 'Pequena'){$p = $v;}
          if($t == "Media")  {$m = $v;}
          if($t == "Grande") {$g = $v;}
          if($t == "Super")  {$s = $v;}
            
        }
?>

        <form nome="form1" method="post" action="carrinho.php?acao=add">
                     <br />
           <label>
           <input type="radio" name="opcao" id="radio" value="P" />
           </label>
           Pequena R$ <? echo number_format($p,2,',','.');?>
           <br />
           <label>
           <input type="radio" name="opcao" id="radio2" value="M" />
           </label>
          Media R$ <? echo number_format($m,2,',','.');?>
          <br />          
           <label>
           <input type="radio" name="opcao" id="radio3" value="G" />
           </label>
          Grande R$ <? echo number_format($g,2,',','.');?>
           <br />
           <label>
           <input type="radio" name="opcao" id="radio4" value="S" />
           </label>
           Super R$ <? echo number_format($s,2,',','.');?>

               
                     <p> </p>
                     <p>OPÇÕES DE SABORES: <BR />
                        <br />
                        <select name="idProd">
                          <option>Selecione</option>
                        
                       <?php
                         require("conexao.php");
                    
                         $sql = "SELECT * FROM prod";
                         $qr = mysql_query($sql) or die(mysql_error() );
                            while($ln = mysql_fetch_assoc($qr)){
                               $nome = $ln['nome'];
                               $id = $ln['id'];
                              echo "<option value=\"$id\">$nome</option>\n";
                           }
                         ?>
                        </select>
                      
                        <label>
                        <input type="submit"  value="adicionar" />
                        </label>
                               </p>
        </form>
        </body>
        </html>
carrinho.php
<?php
        session_start();
            
            
                 
         $op = @$_POST['opcao'];
            
                 
            
          if($op == 'P'){$op = 11.00;}
          if($op == "M"){$op = 20.00;}
          if($op == "G"){$op = 25.00;}
          if($op == "S"){$op = 30.00;}
        
      
            
            
              //Verifica se sessão carrinho existe, caso não existe atribui um array
            if(!isset($_SESSION['carrinho'])){  
                 $_SESSION['carrinho'] = array();
              }
            
              //Verifica se existe alguma ação
              if(isset($_GET['acao'])){
                
                 //ADICIONAR CARRINHO
                 if($_GET['acao'] == 'add'){
                //resgatao valor via Post
                    $id = intval($_POST['idProd']);
                    if(!isset($_SESSION['carrinho'][$id])){
                       $_SESSION['carrinho'][$id] = 1;
                    }else{
                       $_SESSION['carrinho'][$id] += 1;
                    }
                 }
                
                 //REMOVER CARRINHO
                 if($_GET['acao'] == 'del'){
                    $id = intval($_GET['id']);
                    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]);
                          }
                       }
                    }
                 }
            
              }
            
        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Carrinho de compras</title>
        <link rel="stylesheet" type="text/css" href="css/estilo.css"/>
        </head>

        <body>

        <table align="center">
          <caption>
          Carrinho de Compras
          </caption>
           <thead>
                 <tr>
                    <th width="244" bgcolor="#0066FF">Produto</th>
                    <th width="79" bgcolor="#0066FF">Quantidade</th>
                    <th width="89" bgcolor="#0066FF">Preço</th>
                    <th width="100" bgcolor="#0066FF">subtotal</th>
                    <th width="64" bgcolor="#0066FF">Remover</th>
                 </tr>
           </thead>
          
           <form action="?acao=up" method="post">
                
           <tfoot>
                 <tr>
                 <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td>
                 <tr>
                 <td colspan="5"><a href="index.php">Continuar Comprando </a><br /><br /><a href="carrinho.php?acao=finalizar">fechar pedido </a></td>
                
                    </tr>
           </tfoot>
          
           <tbody>
                    <?php
                        
                          if(count($_SESSION['carrinho']) == 0){
                             echo '<tr><td align="center" colspan="5">Não há produto no carrinho</td></tr>';
                          }else{
                             require("conexao.php");
                             foreach($_SESSION['carrinho'] as $id => $qtd){
                                   $sql   = "SELECT * FROM prod WHERE id= '$id'";
                                   $qr    = mysql_query($sql) or die(mysql_error());
                                   $ln    = mysql_fetch_assoc($qr);
                                  
                                   $nome  = $ln['nome'];
                                   $preço = number_format($op, 2, ',', '.'); // selecionei aqui o preço da opçao
                                   $sub   = number_format($op * $qtd,2,',','.'); // selecionei aqui o preço da opçao
                              
                                   //@$total += $sub;
                                   @$total += $op * $qtd;
                                  
                                echo '<tr>
                                      <td id="nome">'.$nome.'</td>
                                      <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td>
                                      <td>R$ '.$preço.'</td>
                                      <td>R$ '.$sub.'</td>
                                      <td><a href="?acao=del&id='.$id.'">Remove</a></td>
                                   </tr>';
                                    
                             }
                                $total = number_format($total,2, ',','.');
                                echo '<tr>
                                         <td align="center" colspan="4">Total</td>
                                         <td id="total">R$ '.$total.'</td>
                                      </tr>';
                          }
                    ?>
          
            
          
           </tbody>
          </form>
              
        </table>    
        </body>
        </html>

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

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,6k
×
×
  • Criar Novo...