Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite Galera acabei de terminar um vídeo tutorial muito bom que está em http://www.videotutoriais.net/videos/carri...ho_compras.html sobre como construir um carrinho de compra em PHP e MySQL. Achei muito bom mesmo. No exemplo o autor colocou o código que altera a quantidade do produto só que aqui em meu servidor local e na internet também não rodou. O carrinho qu eu fiz está inserindo e deletando só falta mesmo é alterar a quantidade dos produtos. Vou disponibilizar tudo e peço a vocês que me ajudem a resolver este problema.
Estrutura do Banco de Dados:
-- Estrutura da tabela carrinho
--
CREATE TABLE `carrinho` (
`id_produto` int(11) NOT NULL default '0',
`nome_produto` varchar(200) NOT NULL default '',
`preco_produto` double(10,2) NOT NULL default '0.00',
`qtd_produto` int(11) NOT NULL default '0',
`sessao` text NOT NULL
) TYPE=MyISAM;
-- --------------------------------------------------------
--
-- Estrutura da tabela produtos
--
CREATE TABLE `produtos` (
`id_produto` int(11) NOT NULL auto_increment,
`nome_produto` varchar(200) NOT NULL default '',
`preco_produto` double(10,2) NOT NULL default '0.00',
PRIMARY KEY (`id_produto`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
--
-- Extraindo dados da tabela produtos
--
INSERT INTO `produtos` VALUES (1, 'Memória Ram 256 MB', 62.00);
INSERT INTO `produtos` VALUES (2, 'Placa de Vídeo XYZ', 150.00);
INSERT INTO `produtos` VALUES (3, 'Notebook Duo', 2300.00);
INSERT INTO `produtos` VALUES (4, 'Mouse Top', 57.00);
#####################################################
página produtos.php
<?php
include "config.php";
conexao();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Lista de Produtos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Veja nossos produtos</h1>
<table border="1" width="100%">
<tr>
<td width="25%"><strong>ID</strong></td>
<td width="25%"><strong>PRODUTO</strong></td>
<td width="25%"><strong>PREÇO</strong></td>
<td width="25%"></td>
</tr>
<?php
$sql_lista = "SELECT * FROM produtos ORDER BY nome_produto ASC";
$exe_lista = mysql_query($sql_lista, $base) or die (mysql_error());
$num_lista = mysql_num_rows($exe_lista);
if ($num_lista > 0){
while ($reg_lista = mysql_fetch_array($exe_lista, MYSQL_ASSOC)){
?>
<tr>
<td width="25%"><?=$reg_lista['id_produto']?></td>
<td width="25%"><?=$reg_lista['nome_produto']?></td>
<td width="25%"><?=number_format($reg_lista['preco_produto'],2,",",".")?></td>
<td width="25%"><a href="cart.php?acao=add&id=<?=$reg_lista['id_produto']?>">adicionar ao carrinho</a></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html>
###################################################
página cart.php
<?php
session_start();
include "config.php";
conexao();
if (isset($_GET['acao'])){
if ($_GET['acao'] == "add"){
if (isset($_GET['id'])){
if (is_numeric($_GET['id'])){
$id_prod = addslashes(htmlentities($_GET['id']));
$sql_cont = "SELECT COUNT(*) AS n_prod FROM carrinho WHERE id_produto = '$id_prod' AND sessao = '".session_id()."'";
$exe_cont = mysql_query($sql_cont, $base) or die (mysql_error());
$reg_cont = mysql_fetch_array($exe_cont, MYSQL_ASSOC);
if ($reg_cont['n_prod'] == 0){
$sql_prod = "SELECT * FROM produtos WHERE id_produto = '$id_prod'";
$exe_prod = mysql_query($sql_prod, $base) or die (mysql_error());
$num_prod = mysql_num_rows($exe_prod);
if ($num_prod > 0){
$reg_prod = mysql_fetch_array($exe_prod, MYSQL_ASSOC);
$sql_add = "INSERT INTO carrinho
(id_produto, nome_produto, preco_produto, qtd_produto, sessao)
VALUES ('".$reg_prod['id_produto']."', '".$reg_prod['nome_produto']."', '".$reg_prod['preco_produto']."', 1, '".session_id()."')";
$exe_add = mysql_query($sql_add, $base) or die (mysql_error());
}
}
}
}
}
if ($_GET['acao'] == "del"){
if (isset($_GET['id'])){
if (is_numeric($_GET['id'])){
$id_prod = addslashes(htmlentities($_GET['id']));
$sql_del = "DELETE FROM carrinho WHERE id_produto = '$id_prod' AND sessao = '".session_id()."'";
$exe_del = mysql_query($sql_del, $base) or die (mysql_error());
}
}
}
if ($_GET['acao'] == "altera_qtd"){
if (isset($_POST['qtd'])){
if (is_array($_POST['qtd'])){
foreach ($_POST['qtd'] as $id_produto => $qtd){
if (is_numeric($id_produto) && is_numeric($qtd)){
$sql_alt = "UPDATE carrinho SET qtd_produto = '$qtd' WHERE
id_produto = '$id_produto' AND sessao = '".session_id()."' ";
$exe_alt = mysql_query($sql_alt, $base) or die (mysql_error());
}
}
}
}
}
}
?>
<html>
<head>
<title>Carrinho de Compras</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Carrinho de Compras</h1>
<form action="cart.php?acao=altera_qtd" method="post">
<table border="1" width="100%">
<tr>
<td width="10%"><strong>ID</strong></td>
<td width="30%"><strong>PRODUTO</strong></td>
<td width="15%"><strong>REMOVER</strong></td>
<td width="15%"><strong>PREÇO</strong></td>
<td width="15%"><strong>QTD.</strong></td>
<td width="15%"><strong>SUBTOTAL</strong></td>
</tr>
<?php
$sql_lista = "SELECT * FROM carrinho WHERE sessao = '".session_id()."' ORDER BY nome_produto ASC";
$exe_lista = mysql_query($sql_lista, $base) or die (mysql_error());
$num_lista = mysql_num_rows($exe_lista);
if ($num_lista > 0){
$total_carrinho = 0;
while ($reg_lista = mysql_fetch_array($exe_lista, MYSQL_ASSOC)){
$total_carrinho += ($reg_lista['preco_produto']*$reg_lista['qtd_produto']);
?>
<tr>
<td width="10%"><?=$reg_lista['id_produto']?></td>
<td width="30%"><?=$reg_lista['nome_produto']?></td>
<td width="15%"><a href="cart.php?acao=del&id=<?=$reg_lista['id_produto']?>">X</a></td>
<td width="15%"><?=number_format($reg_lista['preco_produto'],2,",",".")?></td>
<td width="15%"><input type="text" size="3" name="qtd['<?=$reg_lista['id_produto']?>']" value="<?=$reg_lista['qtd_produto']?>" /></td>
<td width="15%"><?=number_format($reg_lista['preco_produto']*$reg_lista['qtd_produto'],2,",",".")?></td>
</tr>
<?php
}
}
?>
<tr>
<td colspan="5" width="85%" align="right">Total </td>
<td width="15%"><?=number_format($total_carrinho, 2,",",".")?></td>
</tr>
</table>
<input type="submit" value="Alterar quantidade" />
</form>
<a href="produtos.php">Continuar comprando</a>
</body>
</html>
#############################################
É isso ai galera agora é com vocês espero contar com ajuda de todos. Afinal esse carrinho vai servir para muita gente.
Obrigado.
Carregando comentários...