Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal eu novamente aqui, gostaria muito da ajuda de vocês, pois meu certificado depende deste projeto, encontrei aqui no imasters um artigo sobre carrinho de compras usando session e array, fiz algumas adaptações para puxar valores de um banco de dados, só que na hora que eu adiciono os produtos no carrinho só aparece a quantidade, os outros dados não tá indo!
segue abaixo o código, help!!!
pedido.php
<?
/************************************************************************
ARQUIVO .........: Carrinho de compras simples: usando arrays e session
BY ..............: Júlio César Martini - baphp@imasters.com.br
SITE ............: iMasters - http://www.imasters.com.br
DATA ............: 23/05/2004
************************************************************************/
//VERIFICA SE TEM PRODUTO NO CARRINHO PARA PUXAR
if(count($_SESSION["cesta"]) > 0) {
//PEGA A CHAVE DO ARRAY
$chave = array_keys($_SESSION["cesta"]);
//PEGA OS DADOS DA SESSÃO
for($i=0; $i<sizeof($chave); $i++) {
//ÍNDICE
$indice = $chave[$i];
//ATRIBUI
$cesta[$indice]["CODIGO"] = $_SESSION["cesta"][$indice]["CODIGO"];
$cesta[$indice]["DESCRICAO"] = $_SESSION["cesta"][$indice]["DESCRICAO"];
$cesta[$indice]["UNIDADE"] = $_SESSION["cesta"][$indice]["UNIDADE"];
$cesta[$indice]["VALOR"] = $_SESSION["cesta"][$indice]["VALOR"];
$cesta[$indice]["QTDE"] = $_SESSION["cesta"][$indice]["QTDE"];
}//FECHA FOR//VERIFICA SE A OPÇÃO ATUALIZAR FOI SELECIONADA
if($_POST["opc_atualizar"]) {
//RECEBE OS PRODUTOS CHECADOS PARA ATUALIZAÇÃO
$v_atualiza = $_POST["a_prod"];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_atualiza);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $chave[$i];
//ALTERA A QUANTIDADE DO PRODUTO SELECIONADO
$_SESSION["cesta"][$indice]["QTDE"] = $v_atualiza[$indice]["QTDE"];
}//FECHA FOR//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
elseif($_POST["opc_excluir"]) {
//RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
$excluir = $_POST["check"];
//EXIBE
for($i=0; $i<sizeof($excluir); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $excluir[$i];
//DESTRÓI A VARIÁVEL ESPECIFICADA
unset($_SESSION["cesta"][$indice]);
}//FECHA FOR//RECEBE O PEDIDO DO USUÁRIO
elseif($_POST["opc_efetivar"]) {
//RECEBE AS VARIÁVEIS
$v_prod = $_POST["txtprod"];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_prod);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];
//VERIFICA
if(!empty($v_prod[$indice]["QTDE"]) ) {
//GRAVA NO ARRAY CESTA
$cesta[$indice]["CODIGO"] = $v_prod[$indice]["CODIGO"];
$cesta[$indice]["DESCRICAO"] = $v_prod[$indice]["DESCRICAO"];
$cesta[$indice]["UNIDADE"] = $v_prod[$indice]["UNIDADE"];
$cesta[$indice]["VALOR"] = $v_prod[$indice]["VALOR"];
$cesta[$indice]["QTDE"] = $v_prod[$indice]["QTDE"];
}//FECHA IF
}//FECHA FOR
//GRAVA NA SESSÃO
$_SESSION["cesta"] = $cesta;print_r($cesta);
?>
<script language="JavaScript"> function enviar(opcao) {
//OPÇÃO EXCLUIR SELECIONADA
if(opcao == 'E') {
document.forms[0].opc_excluir.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO ATUALIZAR SELECIONADA
if(opcao == 'A') {
document.forms[0].opc_atualizar.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO FINALIZAR SELECIONADA
if(opcao == 'F') {
document.forms[0].opc_finalizar.value = 1;
document.forms[0].action = "finalizar.php";
document.forms[0].submit();
}//FECHA IF
}//FECHA FUNCTION</script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><br>
<br>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><font size="2" face="Arial">Carrinho de Compras: </font></td>
</tr>
</table>
<?
//EXIBE O CARRINHO SE TIVER PRODUTOS
if(count($_SESSION[cesta]) > 0) { ?>
<form name="frmCarrinho" method="post">
<input type="hidden" name="opc_excluir">
<input type="hidden" name="opc_atualizar">
<input type="hidden" name="opc_finalizar">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#CCCCCC">
<td width="4%"> </td>
<td width="8%"><span class="style2">Qtde</span></td>
<td width="51%"><span class="style2">Produto</span></td>
<td width="19%"><span class="style2">Valor</span></td>
<td width="18%"><span class="style2">Subtotal</span></td>
</tr>
<?
//PEGA A CHAVE
$chave_cesta = @array_keys($_SESSION["cesta"]);
//EXIBE OS PRODUTOS DA CESTA
for($i=0; $i<sizeof($chave_cesta); $i++) {
$indice = $chave_cesta[$i];
//SUBTOTAIS DE CADA PRODUTO
$subtotal = $_SESSION["cesta"][$indice]["QTDE"] * ereg_replace(",",".",$_SESSION["cesta"][$indice]["PRECO"]);
//TOTAL GERAL
$total += $subtotal;
?>
<tr>
<td height="25"><input name="check[]" type="checkbox" value="<? echo $indice; ?>"></td>
<td height="25"><font face='Arial' size='2'>
<input type="text" name="a_prod[<? echo $indice; ?>][QTDE]" value="<? echo $_SESSION["cesta"][$indice]["QTDE"]; ?>" size="3"></font></td>
<td height="25"><font face='Arial' size='2'><? echo $_SESSION["cesta"][$indice]["CODIGO"]; ?> - <? echo $_SESSION["cesta"][$indice]["DESCRICAO"]; ?></font></td>
<td height="25"><font face='Arial' size='2'>R$ <? echo $_SESSION["cesta"][$indice]["VALOR"]; ?></font></td>
<td width="18%" height="25"><font face='Arial' size='2'> R$ <? echo number_format($subtotal,2,',','.'); ?></font></td>
</tr>
<?
}//FECHA FOR ?>
<tr>
<td height="25" colspan="3">
<input type="image" name="btnExcluir" src="excluir.gif" onClick="enviar('E');">exclui
<input type="image" name="btnAtualiza" src="atualizar.gif" onClick="enviar('A');">atualiza</td>
<td height="25" bgcolor="#FF0000"><span class="style5"> Total à pagar: </span></td>
<td height="25" bgcolor="#FFF0F0" class="style2"> R$ <b><? echo number_format($total,2,',','.'); ?></b></td>
</tr>
<tr>
<td height="25" colspan="3"> </td>
<td height="40" colspan="2"><div align="center">
<input type="image" name="btnFinaliza" src="finaliza.gif" onClick="enviar('F');"></div></td>
</tr>
</table>
</form>
<?
}//FECHA IF(count)
else { ?><br><br><br>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align='center'><font face='Arial' size='2' color="#006666"><b>Desculpe, mas no momento você não possui nenhumm produto.</b></td>
</tr>
</table><br><br>
<?
}//FECHA ELSE (count)?>
<table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align='center'><font face='Arial' size='2'><a href="index.php"><< Voltar </a></font></td>
</tr>
</table>
<br>
</td>
</tr>
</table>
</body>
</html>
fornecedor.php (página que o cliente faz o pedido)
<body>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?
include_once("template/conMysql.php");
$id_fornecedor = $_GET["id_fornecedor"];
$sql_for = mysql_query("SELECT * FROM fornecedores WHERE id_fornecedor = $id_fornecedor");
$mostra = mysql_fetch_array($sql_for);
?>
<table width="95%" border="2" align="center" cellpadding="2" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<th align="left" valign="top" scope="col"><div align="left">Fornecedor:</div></th>
</tr>
<tr>
<td align="left" valign="top" style="font-weight:normal;"><?php echo $mostra["fornecedor"]; ?></td>
</tr>
<tr>
<td align="left" valign="top">Informações sobre o fornecedor:</td>
</tr>
<tr>
<td align="left" valign="top" style="font-weight:normal;"><?php echo $mostra["infofornecedor"]; ?></td>
</tr>
</table>
<br>
<?
$sql_prod = "SELECT f.*, p.* FROM fornecedores f, produtos p WHERE f.fornecedor = p.fornecedor AND f.id_fornecedor = $id_fornecedor";
$lista = mysql_query($sql_prod);
$qtde_prod = mysql_num_rows($lista);
if($qtde_prod == ""){
echo"
<tr>
<th scope=\"col\">Este fornecedor não possui produtos cadastrados!</th>
</tr>
";
} else {
?>
<tr>
<th scope="col">Este fornecedor possui <?=$qtde_prod; ?> produto(s) cadastrado(s).</th>
</tr>
<form action="index.php?pagina=pedido" method="post" name="frmcarrinho">
<input type="hidden" name="opc_efetivar" value="1">
<table width="97%" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#D6F5F8" bgcolor="#FFFFFF">
<tr>
<th width="73" align="center" valign="middle" scope="col">Código</th>
<th width="463" align="center" valign="middle" scope="col">Descrição</th>
<th width="69" align="center" valign="middle" scope="col">Unidade</th>
<th width="67" align="center" valign="middle" scope="col">R$ Unit.</th>
<th width="69" align="center" valign="middle" scope="col">Pedido Mínimo</th>
<th width="81" align="center" valign="middle" scope="col">Qtde.<br />
Estoque</th>
<th width="37" align="center" valign="middle" scope="col"> </th>
</tr>
<?php
$sql_lista = mysql_query($sql_prod);
$count = mysql_num_rows($sql_lista);
while($colprod = mysql_fetch_array($sql_lista)){
//MONTA O ARRAY DE PRODUTOS
$produto[$indice]["CODIGO"] = $colprod["Cprod"];
$produto[$indice]["DESCRICAO"] = $colprod["Dprod"];
$produto[$indice]["UNIDADE"] = $colprod["Uprod"];
$produto[$indice]["VALOR"] = $colprod["Vprod"];
$produto[$indice]["QMIN"] = $colprod["qMin"];
$produto[$indice]["QEST"] = $colprod["qEst"];
//EXIBE OS PRODUTOS
foreach($produto as $indice) {
$indice = $chave[$i];
$codigo = $produto[$indice]["CODIGO"];
$descricao = $produto[$indice]["DESCRICAO"];
$unidade = $produto[$indice]["UNIDADE"];
$valor = $produto[$indice]["VALOR"];
$qMin = $produto[$indice]["QMIN"];
$qEst = $produto[$indice]["QEST"];
?>
<tr>
<td align="center" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][CODIGO]" value="<? echo $codigo; ?>">
<? echo $codigo; ?>
</td>
<td align="left" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][DESCRICAO]" value="<? echo $descricao; ?>">
<? echo $descricao; ?>
</td>
<td align="center" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][UNIDADE]" value="<? echo $unidade; ?>">
<? echo $unidade; ?>
</td>
<td align="right" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][VALOR]" value="<? echo $valor; ?>">
<? echo $valor; ?>
</td>
<td align="center" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][QMIN]" value="<? echo $qMin; ?>">
<? echo $qMin; ?>
</td>
<td align="center" valign="middle" style="font-weight:normal;">
<input type="hidden" name="txtprod[<? echo $indice;?>][QEST]" value="<? echo $qEst; ?>">
<? echo $qEst; ?>
</td>
<td align="center" valign="middle"><input type="text" name="txtprod[<? echo $indice;?>][QTDE]" size="2" maxlength="3"></td>
<?
print_r($produto);
}
}
?>
</tr>
</table>
<?php }
//PEGA A CHAVE DO ARRAY
$chave = array_keys($produto);
print_r($produtos);
?>
<div align="center">
<input type="image" src="carrinho.gif" onClick="javascript: document.forms[0].submit();">
<br>
</div>
</form>
se puderem me ajudar, serei grato!!!
Carregando comentários...