Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

[PHP] Total e Subtotal do Carrinho de compras

$
0
0
Olá, malta do p@p :).
Venho solicitar a vossa ajuda porque neste momento já estou a fritar e já não consigo raciocinar mais para acertar este problema do total e do subtotal -.-, aguardo concelhos/dicas/ajuda.
Então o problema é o seguinte, depois de adicionar um produto ao carrinho ele faz a soma do total e subtotal normalmente tudo às mil maravilhas o mesmo acontece quando reduzo a quantidade do produto mas quando removo o produto e adiciono outro o total aumenta como se ainda tivesse o produto removido do carrinho, abaixo deixo todo o ficheiro do carrinho.php
Código (PHP):
<?php
session_start();
include('includes/db_config_local.php');

$page = './?show=cesta';

if(isset($_GET['add'])){
  $qty = mysql_query('SELECT Stock FROM stock_tenis WHERE TID='.mysql_real_escape_string((int)$_GET['add'])) or die(mysql_error());
 
  while($qty_row = mysql_fetch_assoc($qty)){
   if($qty_row['Stock']!=$_SESSION['car_'.(int)$_GET['add']]){
    if($_SESSION['car_'.$_GET['add']] < $qty_row['Stock']){
         $_SESSION['car_'.$_GET['add']]+='1';
    }
   }
  }
 
  header('Location: '.$page);
}
if(isset($_GET['remove'])){
  $_SESSION['car_'.$_GET['remove']]--;
  header('Location: '.$page);
}

if(isset($_GET['delete'])){
  $_SESSION['car_'.$_GET['delete']]='0';
  header('Location: '.$page);
}
//mostrar todos os tenis
function tenis(){
  if(!isset($begin)){
   $begin = 0;
  }
 
  $query = "SELECT COUNT(*) FROM stock_tenis GROUP BY TID";
  $busca = mysql_query($query) or die(mysql_error());
  $resultado = mysql_num_rows($busca);
 
  $pag = $resultado/5;
 
  $query = "SELECT genero.*, stock_tenis.*, modelo_tenis.* FROM genero, stock_tenis, modelo_tenis WHERE stock_tenis.Modelo=modelo_tenis.Modelo AND stock_tenis.Genero=genero.IDGen";
  $busca = mysql_query($query) or die(mysql_error());
  $resultado = mysql_num_rows($busca);
 
  echo '<table style="border: 1px solid black; border-radius: 5px 5px 5px 5px;margin: auto; margin-top: 5px; margin-bottom: 5px;">
  <tr>
   <td colspan="2">
         <p style="font-size: 15px">Modelo</p>
   </td>
   <td>
         <p style="font-size: 15px">Genero</p>
   </td>
   <td>
         <p style="font-size: 15px">Tamanho</p>
   </td>
   <td>
         <p style="font-size: 15px">Preço</p>
   </td>
   <td>
         <p style="font-size: 15px">Acção</p>
   </td>
  </tr>';
 
  while($tenis = mysql_fetch_assoc($busca)){
   echo '<tr>
   <td>
         <img src="'.$tenis['vista_dir'].'" width="150px" />
   </td>
   <td>
         <p style="font-size: 15px">'.$tenis['Descricao'].'</p>
   </td>
   <td>
         <p style="font-size: 15px">'.$tenis['Gen'].'</p>
   </td>
   <td>
         <p style="font-size: 15px">'.$tenis['Tamanho'].'</p>
   </td>
   <td>
         <p style="font-size: 15px">'.$tenis['Preco_Cli'].'</p>
   </td>
   <td>
         <p style="font-size: 15px">
          <a href="car.php?add='.$tenis['TID'].'">Adicionar</a>
         </p>
   </td>
  </tr>';
  }
 
  echo '</table>';
}
//mostrar tenis por genero
function produtos($genero){
  $query = "SELECT stock_tenis.*, modelo_tenis.*, genero.* FROM stock_tenis, genero, modelo_tenis WHERE stock_tenis.Genero=genero.IDGen AND stock_tenis.Modelo=modelo_tenis.Modelo AND genero.Gen='".$genero."' GROUP BY modelo_tenis.Descricao";
  $busca = mysql_query($query);
  $resultado = mysql_num_rows($busca);
 
  if($resultado > 0){
   echo '<table style="width: 500px; border: 1px solid black; border-radius: 5px 5px 5px 5px;margin: auto; margin-top: 5px; margin-bottom: 5px;">
   <tr>
         <td colspan="2">
          <p style="font-size: 15px">Modelo</p>
         </td>
         <td>
          <p style="font-size: 15px">Preço</p>
         </td>
   </tr>';
   
   while($produtos=mysql_fetch_assoc($busca)){
    echo '<tr>
         <td>
          <img src="'.$produtos['vista_dir'].'" width="150px" />
         </td>
         <td>
          <p style="font-size: 15px">'.$produtos['Descricao'].'</p>
         </td>
         <td>
          <p style="font-size: 15px">'.$produtos['Preco_Cli'].'</p>
         </td>';
   }
  }
}
//carrinho de compras
function carro(){
  $total=0;
  $sub=0;
 
  echo '<table style="width: 75%; border-collapse:collapse; border: 1px solid black; margin: auto; margin-top: 5px; padding: 0px; background-color: #E6E6E6;">
  <tr style="border: 1px solid black;">
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Modelo</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Tamanho</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Genero</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Quantidade</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Preço/uni</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
         <p style="font-size: 15px">Sub-total</p>
   </td>
   <td style="background-color: #CCCCCC"; border:1px solid black;>
   </td>
  </tr>';
 
  foreach($_SESSION as $name => $value){
   if($value>0){
    if(substr($name, 0, 4) == 'car_'){
         $id = substr($name, 4, (strlen($name)-4));
       
         $query = "SELECT stock_tenis.*, modelo_tenis.*, genero.* FROM stock_tenis, modelo_tenis, genero WHERE stock_tenis.TID = ".mysql_real_escape_string((int)$id)." AND stock_tenis.Genero=genero.IDGen AND stock_tenis.Modelo=modelo_tenis.Modelo";
         $busca = mysql_query($query);
         $resultado = mysql_num_rows($busca);
       
         while($get_row = mysql_fetch_assoc($busca)){
          $sub = $get_row['Preco_Cli'] * $value;
         
          echo '<tr style="border: 1px solid black;">
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.$get_row['Descricao'].'</p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.$get_row['Tamanho'].'</p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.$get_row['Gen'].'</p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.$value.' <a href="car.php?remove='.$id.'">[ - ]</a> <a href="car.php?add='.$id.'">[ + ]</a></p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.number_format($get_row['Preco_Cli'], 2).'€</p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px">'.number_format($sub, 2).'€</p>
           </td>
           <td style="border: 1px solid black;">
            <p style="font-size: 15px"><a href="car.php?delete='.$id.'">[Remove]</a></p>
           </td>
          </tr>';
         }
    }
   }
   $total+=$sub;
  }
  if($total==0){
   echo '<tr style="border: 1px solid black;">
   <td colspan="7">
         <p style="font-size: 15px">De momento o carro encontra-se vazio!</p>
   </td>
  </tr>';
  }else{
   //submeter para a base de dados
  }
 
  echo '<tr style="border: 1px solid black;">
  <td colspan="4" style="background-color: #CCCCCC";">
  </td>
  <td style="background-color: #CCCCCC";">
   <p style="font-size: 15px">Total:</p>
  </td>
  <td style="background-color: #CCCCCC";">
   <p style="font-size: 15px">'.number_format($total, 2).' €</p>
  </td>
  <td style="background-color: #CCCCCC";">
   <input type="button" value="Pagar" />
  </td>
 </tr>';
}

echo '</table>';
?>

fica aqui o link de testes para poderem averiguar.

Aguardando resposta,
fteixeira1993

Viewing all articles
Browse latest Browse all 14700

Trending Articles