Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mcd more core

carrinho de compras

Recommended Posts

Galera, preciso de uma forçinha aqui em um detalhe simples, mas que estou me batendo.

Tenho um carrinho de compras, tudo beleza, porém, preciso que ele me dê o total de produtos que tem no carrinho e me informe. Como posso fazer isso? que ele pegue o total de produtos no banco de dados ( relacionado a Sessão do cliente ) e me dê o total?

 

e outro detalhe, nessa mesma pagina, eu quero que ele me dê a quantidade de produtos relacionado somente a 1 produto, o problema é que quando clico mas de 2/3 vezes no msm produto, o certo era ele aumentar somente na quantidade, porem ele repeti o produto e continua como quantidade ( 1 ). por favor alguem me da uma solução.

 

Segue a pagina do carrinho

<?php
session_start();
include("conexao.php");
// Obtendo a id da sessão $sessao = session_id();
?>
<html><body>
<form action="5.php" method="post">
<?php

// Como nome está em uma tabela diferente dos outros itens
 // terei que incluir o nome da ta	bela junto ao nome do campo
 $itens = mysql_query("SELECT carrinho.cod, carrinho.quant, produtos.nome, produtos.preco FROM carrinho,produtos
 WHERE carrinho.cod = produtos.id AND carrinho.sessao" );
 // Uma verificação simples se o carrinho está vazio ou não
 if(mysql_num_rows($itens) < 1) {
// Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja
 echo "Carrinho vazio<br /><br /><a href=\"1.php\">Ir para a loja</a>";
 } else {
 // Exibe os itens presentes no carrinho
 ?>
 <table>
 <?php
 // Calcular o t]preço total
 $total = 0;
// Dou um loop pra listar is itens do carrinho de compras
 while($item = mysql_fetch_assoc($itens)) {

 ?>
 <tr>
 <td><b><?php echo $item["nome"] ?></b></td>
<td>R$ <?php echo number_format($item["preco"], 2, ",","") ?></td>
 <td><input type="text" name="quantidade[<?php echo $item["cod"] ?>]" value="<?php echo $item["quant"] ?>" </td>
 <td><a href="4.php?id=<?php echo $item["cod"] ?>"><img src="excluir.jpg" alt="Excluir item"/><td>
 </tr>
 <?php
 $total += $item["preco"] * $item["quant"];
 } // Aqui é o fim do while
 ?>
</table>
 <input type="submit" value="Atualizar Carrinho" />
 </form>
<b>Total:</b> R$ <?php echo number_format($total, 2, ",", ""); ?><br />
 <a href="1.php">Efetuar Compra</a>
 <?php
 } // Aqui é o fim do if
 ?>
 <br>
 <br>
 Total de produtos >> <?php echo"OK";?>
 </body></html>

Se alguem tiver uma ideia, ou uma solução pra esse minimo detalhe agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um carrinho de compras, tudo beleza, porém, preciso que ele me dê o total de produtos que tem no carrinho e me informe. Como posso fazer isso? que ele pegue o total de produtos no banco de dados ( relacionado a Sessão do cliente ) e me dê o total?

 

É desnecessário usar banco de dados acoplado a sessão. Uma sessão gera um cookie no servidor (em disco).

 

Talvez este exemplo te dê mais clareza do que é possível fazer na sessão. carrinho

 

No exemplo que tem aí, tem um objeto Produto e Um objeto Carrinho (que é quem armazena os produtos).

 

Para saber o total de objetos dentro do carrinho de um count() no atributo "$produto" da classe Carrinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Rodrigo!

No seu caso eu acharia melhor você puxar o resultado de duas tabelas, isso vai complicar um pouco, você tem que ter as duas tabelas, uma dos produtos com todos os detalhes e a outra do carrinho com o mesmo nome dos campos.

O código da página de carrinho teria que fazer o seguinte.

 

-Recuperar o produto por um "GET" e também criar uma variável para inserir no carrinho;

exemplo:

$produto = $_GET['carrinho'];
e
$inserir = $_GET['inserir'];

-Fazer um select da tabela produtos, puxando todo os campos por um POST;

exemplo:

$consulta = "SELECT * FROM produtos WHERE id_produto = '".$produto."' ";
$resultado = mysql_query($consulta,$conexao);
$linha = mysql_fetch_array($resultado);

$id_produto = $linha['id_produto'];
$nome_produto = $linha['nome_produto'];
$codigo_produto = $linha['codigo_produto'];
$valor_produto = $linha['valor_produto'];

-Verificar se o item já se encontra no carrinho("essa verificação você vai fazer na tabela carrinho") repare que o nome da variável de consulta é outro;

$sqld = "SELECT * FROM carrinho WHERE codigo_item = '".$codigo_produto."' AND sessao = '".$sessao."' ";
$rsd = mysql_query($sqld,$conexao);
$item_duplicado = mysql_num_rows($rsd);

-Vamos fazer agora a inserção na tabela carrinho, mas vamos primeiro verificar se o carrinho já contém 25 itens, você pode mudar para quantos desejar.

-Se o carrinho já conter 25 itens, não deixa mais adicionar mais nenhum item no carrinho.

-Se o carrinho estiver menos que 25 itens, então é adicionado.

if ($_SESSION['total_itens'] == 25) {
$_SESSION['mensagem'] = "<p>Seu carrinho já contém 25 itens, é o máximo de itens por carrinho</p>";
}

if ($_SESSION['total_itens'] < 25) {
if ($item_duplicado == 0 and $inserir == "S") {
$sqli = "INSERT INTO carrinho (codigo_item,nome_item,qt,valor_item,sessao) VALUES ('$codigo_produto','$nome_produto','$qt','$valor_produto','$sessao')";
mysql_query($sqli,$conexao);
} 
$_SESSION['mensagem'] = "";
}

-Atenção: Agora é a parte que fará atualizará o carrinho. Tem uma variável "b" e "c" elas que farão atualizar o seu carrinho.

-Repare também que tem uma variável de "sessão", essa variável foi criada lá em cima, e pode ser utilizada em qualquer lugar do código.

-Vai atualizar a tabela de carrrinho.

for ($contador=1; $contador <= $_SESSION['total_itens']; $contador++) {
$b[$contador] = $_POST['txt'.$contador];
$c[$contador] = $_POST['id'.$contador];
$sqla = "UPDATE carrinho SET qt = '".$b[$contador]."' WHERE id_item = '".$c[$contador]."' ";
mysql_query($sqla,$conexao);
}

-Agora capturamos os itens que foram adicionados na tabela carrinho

$sql = "SELECT * FROM carrinho WHERE sessao = '".$sessao."' ";
$rs = mysql_query($sql,$conexao);
$total_itens = mysql_num_rows($rs);
$_SESSION['total_itens'] = $total_itens;

-Essa variável é a quantidade por produto passado pelo campo txtn, onde o altera o total de itens no carrinho.

$qt = "1";

 

-Esse código fica em cima do código html, agora teria que dar um código em javascript para poder restringir produtos com valores "0" e também não deixar passar de "10" itens por produto. Esse código fica dentro do head.

-"cesta" é o nome do formulário e lembrando que "txtn" é o nome do campo onde vai a quantidade de itens.

<script language="javascript">
function valida_form() {
<?PHP for($contador=1; $contador <= $_SESSION['total_itens']; $contador++) { ?>
if (document.cesta.txtn<?PHP print $contador; ?>.value <1)
	{alert("O campo quantidade não pode ser menor do que 1.");
	document.cesta.txtn<?PHP print $contador; ?>.focus();
	return false;
}
if (document.cesta.txtn<?PHP print $contador; ?>.value >10)
	{alert("O campo quantidade não pode conter mais de 10 itens.");
	document.cesta.txtn<?PHP print $contador; ?>.focus();
	return false;
}
<?PHP } ?>
return true;
}
</script>

Quase tudo pronto.

-Agora cria um formulário.

<form name="cesta" method="post" action="carrinho.php" onSubmit="return valida_form(this);">

-Dentro do formulário insira esse código, lembrando que ele está puxando do select feito lá em cima, da tabela carrinho.

<?PHP
$subtotal = 0;
$n = 0;
while ($reg = mysql_fetch_array($rs)) {
$n = $n + 1;			
$id = $reg["id_item"];
$nome = $reg["nome_item"];
$codigo = $reg["codigo_item"];
$qt = $reg["qt"];
$preco_unitario = $reg["valor_item"];
$preco_total = $preco_unitario * $qt;
$subtotal = $subtotal + $preco_total;
?>

-Agora vamos para o campo "txtn" onde muda o números de itens desejado por cada produto.

<input name="txtn<?PHP print $n; ?>" value="<?PHP print $qt; ?>" type="text" size="2" maxlength="6" class="caixa_texto" />

-E o outro campo onde atualizará o campo, eu fiz o campo de imagem, ele é tipo um submit.

<input name="imageField" type="image" src="imagens/btn_atualizarValores.gif" value="Atualizar" /></td>

 

Bom Rodrigo é isso aí, qualquer dúvida de um salve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera consegui fazer a parte do carrinho, agora será que alguem poderia me dizer como colocar esses botoes para ele alterar a quantidade??

 

Exe:

 

QUANTIDADE

[ 1 ] (+)

(-)

 

ai quando eu clicar no botao (+) ele troca para 2 e assim indiante.

e se quando apertar no (-) ele deiminui o produto e assim indiante.

 

Alguem sabe como posso fazer isso?

no aguardo! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.