Jump to content


Photo

Busca / Adição Carrinho De Compras


  • Faça o login para participar
2 replies to this topic

#1 Sp3ak3

Sp3ak3

    12 Horas

  • Usuários
  • 151 posts
  • Sexo:Não informado

Posted 15/08/2011, 15:11

boa tarde galera.
estou desenvolvendo um sistema de vendas.
esse nao seria um e-commerce, ja que estarei colocando ele em um mercado, onde o usuario ira buscar o produto em um campo busca por leitor de codigo de barras.
ai que mora minha duvida.
como efetuar uma busca ja adicionando o produto no carrinho de compras???

veja o codigo que esta pronto ate agora:

<?php
// Iniciamos nossa sessão que vai indicar o usuário pela session_id
session_start();
include "Connections/conn.php";
// Recuperamos os valores passados por parametros
$acao = $_GET['acao'];
$cod =  $_GET['cod'];


// Verificamos se a acao é igual a incluir
if ($acao == "incluir")
{	
	// Verificamos se cod do produto é diferente de vazio
	if ($cod != '')
	{
		// Se for diferente de vazio verificamos se é numérico
		if (is_numeric($cod))
		{	
		    // Tratamos a variavel de caracteres indevidos
			$cod = addslashes(htmlentities($cod));
			
			// Verificamos se o produto referente ao $cod já está no carrinho para o session id correnpondente
			$query_rs_carrinho = "SELECT * FROM tbl_carrinho WHERE tbl_carrinho.cod = '".$cod."'  AND tbl_carrinho.sessao = '".session_id()."'";
			$rs_carrinho = mysql_query($query_rs_carrinho, $conn) or die(mysql_error());
			$row_rs_carrinho = mysql_fetch_assoc($rs_carrinho);
			$totalRows_rs_carrinho = mysql_num_rows($rs_carrinho);
			
			// Se o total for igual a zero é sinal que o produto ainda não está no carrinho
			if ($totalRows_rs_carrinho == 0)
			{
				// Aqui pegamos os dados do produto a ser incluido no carrinho
				$query_rs_produto = "select * from tbl_produtos where cod = '".$cod."'";
				$rs_produto = mysql_query($query_rs_produto, $conn) or die(mysql_error());
				$row_rs_produto = mysql_fetch_assoc($rs_produto);
				$totalRows_rs_produto = mysql_num_rows($rs_produto);
				
				// Se total for maior que zero esse produto existe e então podemos incluir no carrinho
				if ($totalRows_rs_produto > 0)
				{
					$registro_produto = mysql_fetch_assoc($rs_produto);
					// Incluimos o produto selecionado no carrinho de compras
					$add_sql = "INSERT INTO tbl_carrinho (id, cod, nome, preco, qtd, sessao) 
					VALUES
					('','".$row_rs_produto['cod']."','".$row_rs_produto['nome']."','".$row_rs_produto['preco']."','1','".session_id()."')";
					$rs_produto_add = mysql_query($add_sql, $conn) or die(mysql_error());
				}
			}		
		}
	}
}	

// Verificamos se a acao é igual a excluir
if ($acao == "excluir")
{
	// Verificamos se cod do produto é diferente de vazio
	if ($cod != '')
	{
		// Se for diferente de vazio verificamos se é numérico
		if (is_numeric($cod))
		{	
		    // Tratamos a variavel de caracteres indevidos
			$cod = addslashes(htmlentities($cod));
			// Verificamos se o produto referente ao $cod  está no carrinho para o session id correnpondente
			$query_rs_car = "SELECT * FROM tbl_carrinho WHERE cod = '".$cod."'  AND sessao = '".session_id()."'";
			$rs_car = mysql_query($query_rs_car, $conn) or die(mysql_error());
			$row_rs_carrinho = mysql_fetch_assoc($rs_car);
			$totalRows_rs_car = mysql_num_rows($rs_car);
			
			// Se encontrarmos o registro, excluimos do carrinho
			if ($totalRows_rs_car > 0)
			{
				$sql_carrinho_excluir = "DELETE FROM tbl_carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";	
				$exec_carrinho_excluir = mysql_query($sql_carrinho_excluir, $conn) or die(mysql_error());
			}
		}
	}
}

// Verificamos se a ação é de modificar a quantidade do produto
if ($acao == "modifica")
{
	$quant = $_POST['qtd'];
		// Se for diferente de vazio verificamos se é numérico
		if (is_array($quant))
		{	
		    // Aqui percorremos o nosso array
			foreach($quant as $cod => $qtd)
			{
				// Verificamos se os valores são do tipo numeric
				if(is_numeric($cod) && is_numeric($qtd))
				{
					// Fazemos nosso update nas quantidades dos produtos
					$sql_modifica = "UPDATE tbl_carrinho SET qtd = 	'$qtd' WHERE  cod = '$cod' AND sessao = '".session_id()."'";
					$rs_modifica = mysql_query($sql_modifica, $conn) or die(mysql_error());
				}
			}
		}

}
?>
<!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>
<style type="text/css">
<!--
.style3 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
.style4 {
	color: #FF0000;
	font-weight: bold;
}
-->
</style>
</head>

<body>
<div align="center">
  <form action="carrinho.php?cod=".$cod."&acao=incluir'">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <button type="submit">OK </button>
  </form>
  <p>&nbsp;</p>
</div>
<form action="carrinho.php?acao=modifica" method="post">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <th width="36%" scope="col"><div align="left">PRODUTO</div></th>
    <th width="22%" scope="col">PRE&Ccedil;O</th>
    <th width="13%" scope="col">QUANTIDADE</th>
    <th width="14%" scope="col">SUBTOTAL</th>
    <th width="15%" scope="col">&nbsp;</th>
  </tr>

  <?
  $sql_meu_carrinho = "SELECT * FROM tbl_carrinho WHERE  sessao = '".session_id()."' ORDER BY nome ASC";
  $exec_meu_carrinho =  mysql_query($sql_meu_carrinho, $conn) or die(mysql_error());
  $qtd_meu_carrinho = mysql_num_rows($exec_meu_carrinho);
  
  if ($qtd_meu_carrinho > 0)
  {
  	$soma_carrinho = 0;
  	while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho))
	{
		$soma_carrinho += ($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);
  ?>
    <tr>
  
    <td><span class="style3">
      <?=$row_rs_produto_carrinho['nome']?>
    </span></td>
    <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco'],2,",","."); ?></div></td>
    <td><div align="center" class="style3"><input type"text" size="2" name="qtd[<?=$row_rs_produto_carrinho['cod']?>]" value="<?=$row_rs_produto_carrinho['qtd']?>" /></div></td>
    <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></div></td>
    <td><div align="center"><a href="carrinho.php?cod=<?=$row_rs_produto_carrinho['cod']?>&acao=excluir"><img src="imgs/del_carrinho.jpg" width="110" height="21" border="0" /></a></div></td>
  </tr>
    <?
  }
}
  ?>
    <tr>
      <td colspan="3"><div align="right"><strong>TOTAL:</strong>&nbsp; </div>        <div align="right"></div>        <div align="right"></div></td>
      <td><div align="center" class="style3 style4">
      <?= number_format($soma_carrinho,2,",","."); ?></div></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <th width="33%" height="60" scope="col"><span class="style3"><a href="produtos.php"><img src="imgs/comprando.jpg" width="287" height="40" border="0" /></a></span></th>
          <th width="33%" scope="col">&nbsp;</th>
          <th width="34%" scope="col"><label>
            <input type="image" name="imageField" src="imgs/atualizar.jpg" />
          </label></th>
        </tr>
      </table></td>
    </tr>
</table>
</form>
</body>
</html>

a unica coisa que falta msm e ele efetuar a busca, ja estou aqui com o leitor de codigo de barras, ele automaticamente ele da enter na busca.
como buscar e ja incluir no carrinho, es a questao?

#2 Henderson

Henderson

    12 Horas

  • Usuários
  • 279 posts
  • Sexo:Não informado
  • Localidade:Santos

Posted 15/08/2011, 15:33

você precisa colocar seu form pra mandar como GET porque seu código tá recebendo os dados por GET
troque isso
  <form action="carrinho.php?cod=".$cod."&acao=incluir'">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <button type="submit">OK </button>
  </form>
por isso
  <form action="carrinho.php" method="get">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <input type="hidden" id="acaoHidden" name="acaoHidden" value="incluir" />
  <button type="submit">OK </button>
  </form>


#3 Sp3ak3

Sp3ak3

    12 Horas

  • Usuários
  • 151 posts
  • Sexo:Não informado

Posted 15/08/2011, 21:17

você precisa colocar seu form pra mandar como GET porque seu código tá recebendo os dados por GET
troque isso

  <form action="carrinho.php?cod=".$cod."&acao=incluir'">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <button type="submit">OK </button>
  </form>
por isso
  <form action="carrinho.php" method="get">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <input type="hidden" id="acaoHidden" name="acaoHidden" value="incluir" />
  <button type="submit">OK </button>
  </form>

Cara, perdao, postei meu codigo errado, o que eu tinha feito para uso no sistema e esse aqui, e da maneira que passou nao funcionou.

<?php
include "includes/conecta.php";
include "versessao.php";

switch(@$_GET["acao"]) {
	case "add_item":
		{
			addItem($_GET['id'], $_GET['qtd'], $_GET['preco']); //valores que vieram da página produtos.php
			showCart(); //função que lista os produtos
			break;
		}
	case "verifica":
		{
			verifica($_GET['id'], $_GET['qtd']);
			break;
		}
	case "update_item":
		{
			updateItem($_GET['id'], $_GET['qtd']);
			showCart();
			break;
		}
	case "remove_item":
		{
			removeItem($_GET['id']);
			showCart();
			break;
		}
	default:
		{
			showCart();
		}
	} // fim do switch
	
	function addItem($itemid, $qtd, $preco) {
		$coockie = $_COOKIE["id_card"];
		// argumentos - itemid := id, e qtd := qtde
			
		$result 	= mysql_query("select count(*) from pedido_itens where id_coockie= '$coockie'
										and id_produto = '$itemid'
										and   pedido_itens.finalizada = 'n'") or die(mysql_error());
				$rowDados   = mysql_fetch_row($result);
				$numRows = $rowDados[0];
				if($numRows == 0) {
					$variavel = mysql_query("insert into pedido_itens (id_coockie, id_produto, qtd, preco, finalizada, data)
							values('$coockie', '$itemid', '$qtd', '$preco', 'n', now())") or die("erro na insercao");
				} 
					
	} // fim função
	
	function verifica($itemid, $qtd) {
	$coockie = $_COOKIE["id_card"];
		$verifica = mysql_query("select id_produto, qtde from produto
									where id_produto = $itemid");
				$qtde = mysql_result($verifica, 0, "qtde");
				if ($qtde < $qtd) {
				echo "Produto com estoque insuficiente, constamos em nosso 
						estoque com $qtde peça(s) deste produto, a quantidade será substituí­da por esse
						valor em seu carrinho de compras. Pedimos desculpas pela ausência do mesmo e estaremos repondo
						o mesmo em breve para melhor atende-lo(a).
						A página atualizará em alguns segundos.";
						
						mysql_query("update pedido_itens set
						qtd = '$qtde'
						where id_coockie = '$coockie'
						and id_produto = '$itemid'");
						
						echo"<meta http-equiv=refresh content=15;url='compras.php?i=carrinhocompras.php'>";
						
				} else {
				updateItem($itemid, $qtd);
				showCart(); }
			} //fim função
	
	function  updateItem($itemid, $qtd) {
	$coockie = $_COOKIE["id_card"];
		if ($qtd == "0") {
			removeItem($itemid);
		}  else {			
			mysql_query("update pedido_itens set
						qtd = '$qtd'
						where id_coockie = '$coockie'
						and id_produto = '$itemid'");
				} //end else
		} // end function
	
	function removeItem($itemid) {
	$coockie = $_COOKIE["id_card"];
		
		mysql_query("delete from pedido_itens where id_coockie = '$coockie' and id_produto = '$itemid'");
		} // end function
		
	function showCart() {
	$coockie = $_COOKIE["id_card"];
		
		$custototal = "0";
		
		$query = mysql_query("select * from pedido_itens 
							 inner join produto  on pedido_itens.id_produto = produto.id_produto 
							 where pedido_itens.id_coockie = '$coockie'  
							 and   pedido_itens.finalizada = 'n'
							 order by produto.nome asc");

								
?>	
<!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>Untitled Document</title>
<style type="text/css">
<!--
.style11 {font-size: 12px}
-->
</style>
</head>
<script language="javascript">
	function updateQtd(item) {
		var itemId = item.name;
		var newqtd = item.options[item.selectedIndex].text;
		document.location.href = 'compras.php?i=carrinhocompras.php&acao=verifica&id='+itemId+'&qtd='+newqtd;
	}
	

	//abrir menu pop com imagem do produto
	function abre_pop(x){
	window.open("pop.php?id='"+ x + "'","janela","width=300 , height=300,resizable=yes"); //resizable deixa abrir a tela de pop-up
	}

</script>



<style type="text/css">
<!--
.style5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
.style9 {color: #990000; font-weight: bold; }
.style10 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
<body>
  <form action="carrinhocompras.php" method="get">
  <label for="codBar">Passe o leitor pelo c&oacute;digo de barras
  <input type="text" id="codBar" name="cod" />
  </label>
  <input type="hidden" id="add_item" name="add_item" value="incluir" />
  <button type="submit">OK </button>
  </form>
  <?
  		if(mysql_num_rows($query)>0) {
  ?>

<form name="form1" method="get" action="">
  <table width="100%" border="0" cellpadding="0">
    <tr bgcolor="#CCCCCC">
      <td><div align="left" class="style9"><span class="style5">QTD</span></div></td>
      <td><div align="left" class="style9"><span class="style5">Nome do produto</span></div></td>
      <td><div align="left" class="style9"><span class="style5">Valor Un.</span></div></td>
      <td><div align="left" class="style9"><span class="style5">Sub. Valor</span></div></td>
      <td><div align="left" class="style9"><span class="style5">Excluir</span></div></td>
    </tr>
    <?php
 	while($row = mysql_fetch_array($query)){

	 $custototal = $custototal + ($row['qtd'] * $row['preco']);
  ?>
    <tr bgcolor="e8e8e8">
      <td><select name="<?=$row['id_produto']?>" class="style10 style11" onChange="updateQtd(this)">
      <?
	  	for($u=1; $u<10; $u++) {
			echo "<option ";
			if($row['qtd'] == $u)
				{
					echo " SELECTED";
				}
			echo ">" . $u . "</option>";
	  }
	  ?>
      </select> </td>
      <td><span class="resultado style10 style11">
        <?=$row['nome']?>
      </span></td>
      <td><span class="resultado style10 style11">R$ <? echo number_format($row['preco'],2,".",",");?></span></td>
      <td><span class="style10 style11">R$
        <? $v = $row['preco'] * $row['qtd']; echo number_format($v,2,".",",");?>
      </span></td>
      <td><a href="compras.php?i=carrinhocompras.php&amp;acao=remove_item&amp;id=<?=$row['id_produto']?>"  class="resultado link style10 style11">Excluir</a>      </td>
      <?
		} // end while
	?>
    </tr>
  </table>
  <table width="100%" border="0" cellpadding="0">
    <tr>
      <td><font face="verdana" size="2" color="black"><b>Total: 
      R$ <?php echo number_format($custototal, 2, ".", ","); ?></b></font></td>
    </tr>
  </table>
  <table width="100%" border="0" cellpadding="0">
    <tr>
      <td width="48%"><a href="compras.php?i=produtos.php"><img src="img/continuar_comprando.gif" width="140" height="25" border="0"></a></td>
      <td width="38%">&nbsp;</td>
      <td width="14%"><a href="compras.php?i=carrinhofinal.php"><img src="img/finalizar_compra.gif" width="140" height="25" border="0"></a></td>
    </tr>
  </table>
</form>
<?
} else { echo "Seu Carrinho de Compras está vazio...";}
?>
<?
	} //fecha showcart
?>
</body>
</html>

quando eu vou passar la na pagina produtos, no botao comprar o link vem assim:

carrinhocompras.php&amp;acao=add_item&amp;id=<?=$vetor['id_produto']?>&amp;qtd=1&amp;preco=<?=$vetor['preco']?>

como eu faria para funcionar assim?




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq