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):
fica aqui o link de testes para poderem averiguar.
Aguardando resposta,
fteixeira1993

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>';
?>
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