Jump to content

Recommended Posts

Posted

A minha tabela deixou de funcionar, não aparecendo os detalhes dos produtos nem conseguindo eliminar produtos já olhei para todos os lados do código mas deve-me estar a falhar alguma coisa alguém me pode dar uma ajuda ?

Abaixo deixo o código do meu carrinho

<?php
session_start();
if ($_SESSION['Utilizador']<>"")
{
?>
<!DOCTYPE html>
<!-- Template by freewebsitetemplates.com -->
<html>
<head>
<script type="text/javascript">
function confirmation() {
var answer = confirm("Deseja Confirmar  ?")
if (answer){

 window.location = "pagar.php";
}
else{
 window.location = "carrinho.php";
}
}
</script>
<meta charset="utf-8" />
<title>Inforbew</title>
<link rel="stylesheet" type="text/css" href="style.css" media="all" />
<style type="text/css">
<!--
.style7 {
font-family: Arial, Helvetica, sans-serif;
font-size: 24cm;
}
.style8 {font-size: x-large}
.style13 {font-size: smaller}
.style16 {font-size: medium}
.style18 {
font-family: Arial, Helvetica, sans-serif;
color: #00FFFF;
font-weight: bold;
}
-->
</style>
</head>
<body>
<div id="header">
  <div id="logo">
   <a href="index.php"><img src="images/infor.jpg" alt="" width="350" /></a>   </div> 
  <ul>
   <li><a href="logout.php"><span>logout</span></a></li>
   <li><a href="Conta.php">Conta </a></li>
   <li class="selected"><a href="carrinho.php">Carrinho</a></li>
   <li><a href="produtos.php"><span>Produtos</span></a></li>
   <li><a href="contactos.php"><span>Contactos</span></a></li>  
  </ul>
</div>
<?php
// Iniciamos nossa sess?o que vai indicar o usu?rio pela session_id
$conexao = mysql_connect("localhost", "root", "");
if (!$conexao)
 {
 die('N?o foi poss?vel conectar: ' . mysql_error());
 }
//serve para reconhecer os caracteres especiais
header('Content-Type: text/html; charset=utf-8');
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
//leitura de uma tabela na base de dados
$select = mysql_select_db("inforbew", $conexao);
if (!$select)
 {
 die ('N?o ? poss?vel utilizar a Bade de Dados ?inforbew?: ' . mysql_error());
 }
// Recuperamos os valores passados por parametros
if (isset ($_GET['acao']))
$acao = $_GET['acao'];
else
$acao = '';
if (isset($_GET['cod']))
$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 carrinho WHERE carrinho.cod = '".$cod."'  AND carrinho.sessao = '".session_id()."'";
  $rs_carrinho = mysql_query($query_rs_carrinho, $conexao) 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 artigos where PK_Cod_Artigo = '".$cod."'";
   $rs_produto = mysql_query($query_rs_produto, $conexao) 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 carrinho (id, cod, nome, Preco, qtd, sessao)
 VALUES
 ('','".$row_rs_produto['PK_Cod_Artigo']."','".$row_rs_produto['nome']."','".$row_rs_produto['preco']."','1','".session_id()."')";
 $rs_produto_add = mysql_query($add_sql, $conexao) or die(mysql_error());

 $registro_produto = mysql_fetch_assoc($rs_produto);

  // Verificamos se o produto referente ao $cod j? est? no carrinho para o session id correnpondente
  $query_rs_carrinho = "SELECT * FROM carrinho WHERE carrinho.cod = '".$cod."'  AND carrinho.sessao = '".session_id()."'";
  $rs_carrinho = mysql_query($query_rs_carrinho, $conexao) 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_cliente = "select * from clientes where PK_Cod_Cliente = '".$_SESSION['id']."'";
   $rs_cliente = mysql_query($query_rs_cliente, $conexao) or die(mysql_error());
   $row_rs_cliente = mysql_fetch_assoc($rs_cliente);
   $totalRows_rs_cliente = mysql_num_rows($rs_cliente);  
  }
   } 
 } 

 }
 }
 }
// Verificamos se a acao ? igual a excluir
if ($acao == "pagar")
{
echo "<SCRIPT LANGUAGE='javascript'>confirmation();</SCRIPT>";
}

// 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 carrinho WHERE cod = '".$cod."'  AND sessao = '".session_id()."'";
  $rs_car = mysql_query($query_rs_car, $conexao) 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 carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
   $exec_carrinho_excluir = mysql_query($sql_carrinho_excluir, $conexao) 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 carrinho SET qtd =  '$qtd' WHERE  cod = '$cod' AND sessao = '".session_id()."'";
 $rs_modifica = mysql_query($sql_modifica, $conexao) or die(mysql_error());
   } 
  }
 }
}
?>
<div align="center">
</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çO</th>
   <th width="13%" scope="col">QUANTIDADE</th>
   <th width="14%" scope="col">SUBTOTAL</th>
   <th width="15%" scope="col"></th>
 </tr>
 <?php
 $sql_meu_carrinho = "SELECT * FROM carrinho WHERE  sessao = '".session_id()."' ORDER BY nome ASC";
 $exec_meu_carrinho =  mysql_query($sql_meu_carrinho, $conexao) 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">
  <?php=$row_rs_produto_carrinho['nome']?>

   </span></td>
   <td><div align="center" class="style3"><?php= number_format($row_rs_produto_carrinho['Preco'],2,",","."); ?></div></td>
   <td><div align="center" class="style3"><input type"text" size="2" name="qtd[<?php=$row_rs_produto_carrinho['cod']?>]" value="<?php=$row_rs_produto_carrinho['qtd']?>" /></div></td>
   <td><div align="center" class="style3"><?php= number_format($row_rs_produto_carrinho['Preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></div></td>
   <td><div align="center"><a href="carrinho.php?cod=<?php=$row_rs_produto_carrinho['cod']?>&acao=excluir"><img src="imgs/del_carrinho.jpg" width="110" height="21" border="0" /></a></div></td>
 </tr>
   <?php
 }
}
 ?>
   <tr>
  <td colspan="3"><div align="right"><strong>TOTAL:</strong>  </div>	    <div align="right"></div>	    <div align="right"></div></td>
  <td><div align="center" class="style3 style4">
  <?php= number_format($soma_carrinho,2,",","."); ?></div></td>
  <td> </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/ver produtos.png" width="287" height="40" border="0" /></a></span></th>

	  <th width="33%" height="60" scope="col"><span class="style3"><a href="carrinho.php?cod=<?php=$row_rs_produto_carrinho['cod']?>&acao=pagar"><img src="imgs/encomenda.png" width="287" height="40" border="0" /></a></span></th>


   <th width="34%" scope="col"><label><input type="image" name="imageField" src="imgs/actualizarc.png" /> </label></th>
    </tr>
  </table></td>
   </tr>
</table>
</form>		  </body>
<?php
}
?>
		 </html>
Posted

estás a guardar registos associados a uma sessão na base de dados ???

se eu fechar o browser e voltar novamente não só não vou ver os itens nenhuns como só vou encher a base de dados com lixo da sessão anterior ...

associa simplesmente ao utilizador e caso não exista autenticação cria cookies ou outro método

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.