Ir ao conteúdo
  • Cadastre-se

Loja virtual


Posts recomendados

Olá preciso de ajuda, ando a tentar fazer uma loja virtual. E agora aparece -me sempre este erro. Se eu tento substituir todos mysql por mysqli da erros na mesma, alguem consegue me dizer o que que eu estou a fazer mal, vou colocar as minhas páginas php mais a baixo. Obrigado

 

( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Program Files\VertrigoServ\www\loja\conecta.php on line 2
Call Stack
# Time Memory Function Location
1 0.0012 240056 {main}( ) ...\index.php:0
2 0.0019 242800 include( 'C:\Program Files\VertrigoServ\www\loja\conecta.php' ) ...\index.php:1
3 0.0019 243104 mysql_connect ( ) ...\conecta.php:2

 

PÁGINA INDEX

<?php include('conecta.php'); ?>
<!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=utf-8" />
<title>Loja Virtual</title>
</head>
<body>
<?php
?>
<form id="form1" name="form1" method="post" action="">
<table width="1116" height="143" border="0">
  <tr>
    <td width="23" align="center" valign="middle"> </td>
    <td width="458" align="center" valign="middle"> </td>
    <td width="54" align="center" valign="middle"> </td>
    <td width="145" align="center" valign="middle"> </td>
    <td width="68" align="center" valign="middle"> </td>
    <td width="102" align="center" valign="middle">Buscar</td>
    <td width="144" align="center" valign="middle"><input type="text" name="buscar" id="buscar" /></td>
    <td width="88" align="center" valign="middle"><input type="button" name="btbuscar" id="btbuscar" value="Buscar" /></td>
  </tr>
  <tr>
    <td colspan="8" align="center" valign="middle">LISTA DE PRODUTOS</td>
    </tr>
  <tr>
    <td align="center" valign="middle" bgcolor="#006666">ID</td>
    <td align="center" valign="middle" bgcolor="#006666">IMAGEM</td>
    <td align="center" valign="middle" bgcolor="#006666">NOME</td>
    <td align="center" valign="middle" bgcolor="#006666">DESCRIÇÃO</td>
    <td align="center" valign="middle" bgcolor="#006666">PREÇO</td>
    <td align="center" valign="middle" bgcolor="#006666">QUANTIDADE</td>
    <td align="center" valign="middle" bgcolor="#006666">DATA</td>
    <td align="center" valign="middle" bgcolor="#006666">ADICIONAR</td>
  </tr>
  
  <?php
  $consulta = mysql_query("SELECT * FROM produtos");
  while($linha=mysql_fetch_array($consulta)){
     $id = $linha['id'];
     $imagem = $linha['imagem'];
     $nome = $linha['nome'];
     $desc = $linha['descricao'];
     $preco = $linha['preco'];
     $quant = $linha['quantidade'];
     $data = $linha['data'];
  
  
  ?>
  
  <tr>
    <td align="center" valign="middle"><?php echo $id; ?></td>
    <td align="center" valign="middle"><img src="<?php echo $imagem; ?>" width="70" height="70"</td>
    <td align="center" valign="middle"><?php echo $nome; ?></td>
    <td align="center" valign="middle"><?php echo $desc; ?></td>
    <td align="center" valign="middle"><?php echo $preco; ?></td>
    <td align="center" valign="middle"><?php echo $quant; ?></td>
    <td align="center" valign="middle"><?php echo $data; ?></td>
    <td align="center" valign="middle"> Adicionar; </td>
  </tr>
  <?php } ?>
</table>
</form>
</body>
</html>



PÀGINA CONECTA

<?php
$conexao = mysql_connect('localhost', 'root', 'vertrigo') or die ('Não foi possivel conectar');
$db = mysql_select_db('loja', $conexao) or die ('Não foi possivel conectar com a base de dados');
?>

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@GabrielaCosta O problema é que a extensão mysql está defasada. Na versão 7 do php ele não existe mais. agora só mysqli ou pdo.

 

Para alterar, você precisa alterar de tudo. começando pelo jeito que conecta ao banco.

 

desta forma:

<?php
$conexao = mysqli_connect('localhost', 'root', 'vertrigo', 'loja'); 

?>

Veja que neste novo jeito, não é preciso usar a função de seleção de db, já que você passa o nome dele como parâmetro.

 

A parte da consulta também deve ser alterada ficando assim:

$consulta = mysqli_query($conexao, "SELECT * FROM produtos");
  while($linha=mysqli_fetch_array($consulta)){
     $id = $linha['id'];
     $imagem = $linha['imagem'];
     $nome = $linha['nome'];
     $desc = $linha['descricao'];
     $preco = $linha['preco'];
     $quant = $linha['quantidade'];
     $data = $linha['data'];
  
  

Acostume-se a escrever em modo orientada a objetos. ou seja tratar os dados como objeto, vai melhorar sua vida. exemplo:

 

$consulta = mysqli_query($conexao ,"SELECT * FROM produtos");
  while($linha = mysqli_fetch_object($consulta)){
     $id = $linha->id;
     $imagem = $linha->imagem;
     $nome = $linha->nome;
     $desc = $linha->descricao;
     $preco = $linha->preco;
     $quant = $linha->quantidade;
     $data = $linha->data;
  
  
  ?>

Veja a diferença, fica muito melhor.

Bom, o erro mesmo é por conta do mysql  antigo.   deve usar o mysqli ou pdo.

 

Outra coisa, o wamp é ruim.  Use o EasyPHP 16.1 DEV SERVER

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@dif  Olá outra vez, agora estou com problemas na imagem e no botão pesquisa.

As imagens não aparecem.

A pesquisa funciona se eu clicar enter mas se carregar no botão não funciona.

O código é:


 

<?php include('conecta.php'); ?>
<!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=utf-8" />
<title>Loja Virtual</title>
<style type="text/css">
#cor {
    color: #0C9;
}
body,td,th {
    color: #000000;
    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
#form1 table tr #cor strong {
    color: #FFFFFF;
}
#form1 table tr td strong {
    font-size: medium;
}
</style>
</head>
<body>

<?php
?>
<form id="form1" name="form1" method="post" action="">
<table width="1299" height="279" border="0">
  <tr>
    <td height="26" colspan="3" rowspan="2" align="center" valign="middle" bgcolor="#CCCCCC">    <img src="imagens/Logotipo.jpg" width="98%" height="116" /></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"> </td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="right">Contactos</div></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">Login</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"> </td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="left">Registe-se</div></td>
    </tr>
  <tr>
    <td width="377" align="right" valign="middle" bgcolor="#CCCCCC"><strong>Pesquise aqui:</strong></td>
    <td width="144" align="center" valign="middle" bgcolor="#CCCCCC"><input name="Buscar" type="text" id="Buscar" title="Buscar" /></td>
    <td width="91" height="102" align="center" valign="middle" bgcolor="#CCCCCC"><p align="left">
      <input name="Aceitar" type="button" id="Aceitar" title="Aceitar" value="Pesquisar" />
    </p></td>
    <td width="130" align="left" valign="middle" bgcolor="#CCCCCC"> </td>
    <td width="112" align="center" valign="middle" bgcolor="#CCCCCC"> </td>
  </tr>
  <tr>
    <td height="32" colspan="8" align="center" valign="middle" bgcolor="#000000" id="cor"><strong>LISTA DE PRODUTOS</strong></td>
    </tr>
  <tr>
    <td width="38" align="center" valign="middle" bgcolor="#FF4500">ID</td>
    <td width="177" align="center" valign="middle" bgcolor="#FF4500">IMAGEM</td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FF4500">NOME</td>
    <td align="center" valign="middle" bgcolor="#FF4500">PREÇO</td>
    <td align="center" valign="middle" bgcolor="#FF4500">QUANTIDADE</td>
    <td align="center" valign="middle" bgcolor="#FF4500">DATA</td>
    <td align="center" valign="middle" bgcolor="#FF4500">ADICIONAR</td>
  </tr>
  
  <?php
  $consulta = mysqli_query($conexao, "SELECT * FROM produtos");
  
  if(isset($_POST['Buscar'])){
      
     
     $consulta = mysqli_query($conexao, "SELECT * FROM produtos where nome like '%".$_POST['Buscar']."%'");
  }
  
  
  while($linha=mysqli_fetch_array($consulta)){
     $id = $linha['id'];
     $imagem = $linha['imagem'];
     $nome = $linha['nome'];
     $desc = $linha['descricao'];
     $preco = $linha['preco'];
     $quant = $linha['quantidade'];
     $data = $linha['data'];
     $adicionar = '<a href="carrinho.php?id'.$linha['id']
  
  
  ?>
  
  <tr>
    <td height="72" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $id; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><img src="<?php echo $imagem; ?>" width="70" height="70" ></td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $nome; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $preco; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $quant; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $data; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $adicionar; ?></td>
  </tr>
  <?php } ?>
</table>
</form>
</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

Ao acrescentar o carrinho, sei fazer em msql e substitui por mysqli, mas dá erro pois deve estar algo no código mal:

 


 

<!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=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>Carrinho de Compras</p>
<p> </p>
<p> </p>
<p>Meus produtos escolhidos são:</p>
<p> </p>
<p> </p>
<?php
if (isset($_POST['id_txt'])){
    

echo '<p>O ID do Produto é:' .$_POST['id_txt']. '</p>';
$nroreg = $_POST['id_txt'];
$consulta = "select * from produtos where id = $nroreg";
$resultado = mysqli_query($consulta);
$linha= mysqli_fetch_array ($resultado);
}
?>
</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

Bom dia @dif

 

Consegues-me explicar porque que não aparecem as imagens?. Obrigado pela tua ajuda :)

 

<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Loja Virtual</title>
<style type="text/css">
#cor {
	color: #0C9;
}
body,td,th {
	color: #000000;
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
</style>
</head>

<body>


<?php

?>

<form id="form1" name="form1" method="post" action="">
<table width="1299" height="279" border="0">
  <tr>
    <td height="26" colspan="3" rowspan="2" align="center" valign="middle" bgcolor="#CCCCCC">    <img src="imagens/Logotipo.jpg" width="98%" height="116" /></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="right">Contactos</div></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">Login</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="left">Registe-se</div></td>
    </tr>
  <tr>
    <td width="377" align="right" valign="middle" bgcolor="#CCCCCC"><strong>Pesquise aqui:</strong></td>
    <td width="144" align="center" valign="middle" bgcolor="#CCCCCC"><input name="Buscar" type="text" id="Buscar" form="form1" title="Buscar" autocomplete="off" /></td>
    <td width="91" height="102" align="center" valign="middle" bgcolor="#CCCCCC"><p align="left">
      <input name="Aceitar" type="submit" id="Aceitar" form="form1" title="Aceitar" value="Pesquisar" />
    </p></td>
    <td width="130" align="left" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td width="112" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
  </tr>
  <tr>
    <td height="32" colspan="8" align="center" valign="middle" bgcolor="#000000" id="cor"><strong>LISTA DE PRODUTOS</strong></td>
    </tr>
  <tr>
    <td width="38" align="center" valign="middle" bgcolor="#FF4500">ID</td>
    <td width="177" align="center" valign="middle" bgcolor="#FF4500">IMAGEM</td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FF4500">NOME</td>
    <td align="center" valign="middle" bgcolor="#FF4500">PREÇO</td>
    <td align="center" valign="middle" bgcolor="#FF4500">QUANTIDADE</td>
    <td align="center" valign="middle" bgcolor="#FF4500">DATA</td>
    <td align="center" valign="middle" bgcolor="#FF4500">ADICIONAR</td>
  </tr>
  
 <?php
  $consulta = mysqli_query($conexao, "SELECT * FROM produtos");
  
  if(isset($_POST['Buscar'])){
      
     
     $consulta = mysqli_query($conexao, "SELECT * FROM produtos where nome like '%".$_POST['Buscar']."%'");
  }
  
  
  while($linha=mysqli_fetch_array($consulta)){
     $id = $linha['id'];
     $imagem = $linha['imagem'];
     $nome = $linha['nome'];
     $preco = $linha['preco'];
     $quant = $linha['quantidade'];
     $data = $linha['data'];
	 //$adicionar = '<a href="carrinho.php?id='.$linha['id'].'"title="'.$linha['id'].'"> Adicionar </a>'
	 
	 
  
  
  ?>
  
  <tr>
    <td height="72" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $id; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><img src="<?php echo $imagem; ?>" width="70" height="70" ></td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $nome; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $preco; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $quant; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $data; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF">
<form action="carrinho.php" method="post" name="comprar">
    <input name="id_txt" type="hidden" value="<?php echo $id; ?>" />
  <input name="nome" type="hidden" value="<?php echo $nome; ?>" />
  <input name="preco" type="hidden" value="<?php echo $preco; ?>" />
    <input name="quantidade" type="hidden" value="1" />
    
  <input name="Comprar" type="submit" formaction="carrinho.php" value="Comprar" />
  </form></td>
  </tr>
  <?php 
  } 
  ?>
</table>
</form>

</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

Bom dia @dif

Como tinha referido as imagens não aparecem.

E no carrinho eu quero que quantidade só apareça uma vez, num campo que dá para editar, e ela aparece duas vezes. Em anexo mando fotos da aparência neste momento e a explicação.

 

Vou colocar o código da página index e da página do carrinho

 

Index:


<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Loja Virtual</title>
<style type="text/css">
#cor {
	color: #0C9;
}
body,td,th {
	color: #000000;
	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
}
</style>
</head>

<body>


<?php

?>

<form id="form1" name="form1" method="post" action="">
<table width="1299" height="279" border="0">
  <tr>
    <td height="26" colspan="3" rowspan="2" align="center" valign="middle" bgcolor="#CCCCCC">    <img src="imagens/Logotipo.jpg" width="98%" height="116" /></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="right">Contactos</div></td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">Login</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td height="26" align="center" valign="middle" bgcolor="#CCCCCC"><div align="left">Registe-se</div></td>
    </tr>
  <tr>
    <td width="377" align="right" valign="middle" bgcolor="#CCCCCC"><strong>Pesquise aqui:</strong></td>
    <td width="144" align="center" valign="middle" bgcolor="#CCCCCC"><input name="Buscar" type="text" id="Buscar" form="form1" title="Buscar" autocomplete="off" /></td>
    <td width="91" height="102" align="center" valign="middle" bgcolor="#CCCCCC"><p align="left">
      <input name="Aceitar" type="submit" id="Aceitar" form="form1" title="Aceitar" value="Pesquisar" />
    </p></td>
    <td width="130" align="left" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
    <td width="112" align="center" valign="middle" bgcolor="#CCCCCC">&nbsp;</td>
  </tr>
  <tr>
    <td height="32" colspan="8" align="center" valign="middle" bgcolor="#000000" id="cor"><strong>LISTA DE PRODUTOS</strong></td>
    </tr>
  <tr>
    <td width="38" align="center" valign="middle" bgcolor="#FF4500">ID</td>
    <td width="177" align="center" valign="middle" bgcolor="#FF4500">IMAGEM</td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FF4500">NOME</td>
    <td align="center" valign="middle" bgcolor="#FF4500">QUANTIDADE</td>
    <td align="center" valign="middle" bgcolor="#FF4500">PREÇO</td>
    <td align="center" valign="middle" bgcolor="#FF4500">DATA</td>
    <td align="center" valign="middle" bgcolor="#FF4500">ADICIONAR</td>
  </tr>
  
 <?php
  $consulta = mysqli_query($conexao, "SELECT * FROM produtos");
  
  if(isset($_POST['Buscar'])){
      
     
     $consulta = mysqli_query($conexao, "SELECT * FROM produtos where nome like '%".$_POST['Buscar']."%'");
  }
  
  
  while($linha=mysqli_fetch_array($consulta)){
     $id = $linha['id'];
     $imagem = $linha['imagem'];
     $nome = $linha['nome'];
     $quant = $linha['quantidade'];
	 $preco = $linha['preco'];
     $data = $linha['data'];
	 //$adicionar = '<a href="carrinho.php?id='.$linha['id'].'"title="'.$linha['id'].'"> Adicionar </a>'
	 
	 
  
  
  ?>
  
  <tr>
    <td height="72" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $id; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><img src="<?php echo $imagem; ?>" width="70" height="70" ></td>
    <td colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $nome; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $quant; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $preco; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF"><?php echo $data; ?></td>
    <td align="center" valign="middle" bgcolor="#FFFFFF">
<form action="carrinho.php" method="post" name="comprar">
    <input name="id_txt" type="hidden" value="<?php echo $id; ?>" />
  <input name="nome" type="hidden" value="<?php echo $nome; ?>" />
    <input name="quantidade" type="hidden" value="1" />
    <input name="preco" type="hidden" value="<?php echo $preco; ?>" />
    
  <input name="Comprar" type="submit" formaction="carrinho.php" value="Comprar" />
  </form></td>
  </tr>
  <?php 
  } 
  ?>
</table>
</form>

<p><a href="carrinho.php">Carrinho de Compras</a></p>
</body>
</html>





Carrinho:


<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Carrinho de Compras</title>
<style type="text/css">
input {
	text-align: center;
}
</style>
</head>

<body>
<p>Carrinho de Compras</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Meus produtos escolhidos são:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<?php


if (isset($_POST['id_txt'])){
	
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$meucarrinho [] = array ('id' => $id, 'nome' => $nome, 'preco' => $preco, 'quantidade' => $quantidade);
}

session_start();

if (isset($_SESSION['carrinho'])){
	$meucarrinho = $_SESSION['carrinho'];
if (isset($_POST['id_txt'])){
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$pos = -1;
for ($i=; $i<count($meucarrinho); $i++){
if ($id == $meucarrinho[$i] ['id'])	{
	$pos = $i;
}
}

if($pos<>-1){
	$quant = $meucarrinho[$pos] ['quantidade'] + $quantidade;
	$meucarrinho[$pos] = array ('id' => $id, 'nome' => $nome, 'quantidade' => $quant, 'preco' => $preco);	
}

else {
	$meucarrinho[] = array ('id' => $id, 'nome' => $nome,'quantidade' => $quantidade, 'preco' => $preco);
}

}
}

if (isset ($_POST['id2'])){
	$indice = $_POST['id2'];
	$quant = $_POST['quantidade2'];
	$meucarrinho [$indice] ['quantidade'] = $quant;
	
}

if (isset ($meucarrinho)) $_SESSION['carrinho'] = $meucarrinho;

?>


<table width="916" height="140" border="0">
  <tr>
    <td colspan="5" align="center" bgcolor="#CC6600">Produtos</td>
  </tr>
  <tr align="center">
   
    <td width="607" bgcolor="#FFFF00">Nome</td>
    <td width="143" bgcolor="#FFFF00">Quantidade</td>
    <td width="90" bgcolor="#FFFF00">Preço</td>
     <td width="58" height="26" colspan="2" bgcolor="#FFFF00">Sub total</td>
  </tr>
  <?php
 
  if (isset ($meucarrinho)){
	  
	  $total = ;
	  
	for($i=; $i < count($meucarrinho); $i++){
		
		
	
 
  ?>

  <tr>
   
    <td><?php echo $meucarrinho [$i] ['nome'] ?></td>
    <td width="2" height="2" align="center">
	<?php echo $meucarrinho [$i] ['quantidade'] ?>
    <form action="" method="post" name="Atualizar">
    <input name="id2" type="hidden" value="<?php echo $i ?>" />
    <input name="quantidade2" type="text" value="<?php echo $meucarrinho[$i]['quantidade'] ?>" size="2" maxlength="2" />
    <input type="image" src="imagens/atualizar.png" width="17" height="17"/>
    
    </form>
    </td>
    <td align="center"><?php echo $meucarrinho [$i] ['preco'] ?></td>
    
    <?php
	
	$subtotal = $meucarrinho [$i]['preco'] * $meucarrinho[$i]['quantidade'];
	$total = $total + $subtotal;
	
	?>
    
     <td height="27" align="center"><?php echo $subtotal ?>
     
     
     </td>
     <td align="center"><form action="" method="post">
     <input name="id3" type="hidden" value=" <?php echo $i ?>" />
     <input name="" type="image" src="imagens/excluir.png" width="17" height="17" />
     </td>
  </tr>
  <?php 
   }
	  
  }
   ?>
 
  <tr>
    <td height="36" colspan="3" align="right"> Total: </td>
    <td align="center"><?php if (isset ($total)) echo $total; ?> </td> 
    
  </tr>
</table>
<p>&nbsp;</p>
<p><a href="index.php">Voltar</a></p>
</body>
</html>

 

 

Obrigado por toda a tua ajuda @dif :)

 

carrinho.png

index.png

Link para o comentário
Compartilhar em outros sites

Bom dia alguém me pode ajudar? Está a dar um erro no meu código e eu não percebo porquê

 

<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Carrinho de Compras</title>
<style type="text/css">
input {
	text-align: center;
}
</style>
</head>

<body>
<p>Carrinho de Compras</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Meus produtos escolhidos são:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<?php


if (isset($_POST['id_txt'])){
	
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$meucarrinho [] = array ('id' => $id, 'nome' => $nome, 'preco' => $preco, 'quantidade' => $quantidade);
}

session_start();

if (isset($_SESSION['carrinho'])){
	$meucarrinho = $_SESSION['carrinho'];
if (isset($_POST['id_txt'])){
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$pos = -1;
for ($i=; $i<count($meucarrinho); $i++){
if ($id == $meucarrinho[$i] ['id'])	{
	$pos = $i;
}
}

if($pos<>-1){
	$quant = $meucarrinho[$pos] ['quantidade'] + $quantidade;
	$meucarrinho[$pos] = array ('id' => $id, 'nome' => $nome, 'quantidade' => $quant, 'preco' => $preco);	
}

else {
	$meucarrinho[] = array ('id' => $id, 'nome' => $nome,'quantidade' => $quantidade, 'preco' => $preco);
}

}
}

if (isset ($_POST['id2'])){
	$indice = $_POST['id2'];
	$quant = $_POST['quantidade2'];
	$meucarrinho [$indice] ['quantidade'] = $quant;
	
}

if (isset ($_POST['id3'])){
	$indice = $_POST['id3'];
	$meucarrinho [$indice] = NULL;

}

if (isset ($meucarrinho)) $_SESSION['carrinho'] = $meucarrinho;

?>


<table width="916" height="140" border="0">
  <tr>
    <td colspan="5" align="center" bgcolor="#CC6600">Produtos</td>
  </tr>
  <tr align="center">
   
    <td width="607" bgcolor="#FFFF00">Nome</td>
    <td width="143" bgcolor="#FFFF00">Quantidade</td>
    <td width="90" bgcolor="#FFFF00">Preço</td>
     <td width="58" height="26" colspan="2" bgcolor="#FFFF00">Sub total</td>
  </tr>
  <?php
 
  if (isset ($meucarrinho)){
	  
	  $total = ;
	  
	for($i=; $i < count($meucarrinho); $i++)
	{
		
		if ($meucarrinho[$i] <> NULL ){	
	
 
  ?>

  <tr>
   
    <td><?php echo $meucarrinho [$i] ['nome'] ?></td>
    <td width="2" height="2" align="center">
	
    <form action="" method="post" name="Atualizar">
    <input name="id2" type="hidden" value="<?php echo $i ?>" />
    <input name="quantidade2" type="text" value="<?php echo $meucarrinho [$i] ['quantidade'] ?>" size="2" maxlength="2" />
    <input type="image" src="imagens/atualizar.png" width="17" height="17"/>
    
    </form>
    </td>
    <td align="center"><?php echo $meucarrinho [$i] ['preco'] ?></td>
    
    <?php
	
	$subtotal = $meucarrinho [$i]['preco'] * $meucarrinho[$i]['quantidade'];
	$total = $total + $subtotal;
	
	?>
    
     <td height="27" align="center"><?php echo $subtotal ?>
     
     
     </td>
     <td align="center"><form action="" method="post">
     <input name="id3" type="hidden" value=" <?php echo $i ?>" />
     <input name="" type="image" src="imagens/delete.png" width="17" height="17" />
     </td>
  </tr>
  <?php
		}
		}
  }
  ?>
 
  <tr>
    <td height="36" colspan="3" align="right"> Total: </td>
    <td align="center"><?php if (isset ($total)) echo $total; ?> </td> 
    
  </tr>
</table>
<p>&nbsp;</p>
<p><a href="index.php">Voltar</a></p>
</body>
</html>

 

erro.png

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

já coloquei o código para excluir mas continua a não dar, eu não estou a conseguir por isto a funcionar de maneira nenhuma. Alguém me pode ajudar?

 

Em baixo vai o código dessa parte

 

 <?php
 
  if (isset ($meucarrinho)){
	  
	  $total = ;
	  
	for($i=; $i < count($meucarrinho); $i++)
	{
		
		if (array_key_exists($i, $meucarrinho)<>NULL){	
	

  ?>

 

 

Link para o comentário
Compartilhar em outros sites

@dif podes me ajudar?

O que é que estou a fazer mal para não conseguir remover produto do carrinho de compras? Eu clico no icone e não acontece nada.

 

<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Carrinho de Compras</title>
<style type="text/css">
input {
	text-align: center;
}
</style>
</head>

<body>
<p>Carrinho de Compras</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Meus produtos escolhidos são:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<?php


if (isset($_POST['id_txt'])){
	
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$meucarrinho [] = array ('id' => $id, 'nome' => $nome, 'preco' => $preco, 'quantidade' => $quantidade);
}

session_start();

if (isset($_SESSION['carrinho'])){
	$meucarrinho = $_SESSION['carrinho'];
if (isset($_POST['id_txt'])){
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$pos = -1;
for ($i=; $i<count($meucarrinho); $i++){
if ($id == $meucarrinho[$i] ['id'])	{
	$pos = $i;
}
}

if($pos<>-1){
	$quant = $meucarrinho[$pos] ['quantidade'] + $quantidade;
	$meucarrinho[$pos] = array ('id' => $id, 'nome' => $nome, 'quantidade' => $quant, 'preco' => $preco);	
}

else {
	$meucarrinho[] = array ('id' => $id, 'nome' => $nome,'quantidade' => $quantidade, 'preco' => $preco);
}

}
}

if (isset ($_POST['id2'])){
	$indice = $_POST['id2'];
	$quant = $_POST['quantidade2'];
	$meucarrinho [$indice] ['quantidade'] = $quant;
	
}

if (isset ($_POST['id3'])){
	$indice = $_POST['id3'];
	$meucarrinho [$indice] = NULL;

}

if (isset ($meucarrinho)) $_SESSION['carrinho'] = $meucarrinho;

?>
<table width="916" height="140" border="0">
  <tr>
    <td colspan="5" align="center" bgcolor="#CC6600">Produtos</td>
  </tr>
  <tr align="center">
   
    <td width="607" bgcolor="#FFFF00">Nome</td>
    <td width="143" bgcolor="#FFFF00">Quantidade</td>
    <td width="90" bgcolor="#FFFF00">Preço</td>
     <td width="58" height="26" colspan="2" bgcolor="#FFFF00">Sub total</td>
  </tr>
  <?php
 
  if (isset ($meucarrinho)){
	  
	  $total = ;
	  
	for($i=; $i < count($meucarrinho); $i++)
	{
		
		if (array_key_exists($i, $meucarrinho)<>NULL){		
	

  ?>

  <tr>
   
    <td><?php echo $meucarrinho [$i] ['nome'] ?></td>
    <td width="2" height="2" align="center">
	
    <form action="" method="post" name="Atualizar">
    <input name="id2" type="hidden" value="<?php echo $i ?>" />
    <input name="quantidade2" type="text" value="<?php echo $meucarrinho [$i] ['quantidade'] ?>" size="2" maxlength="2" />
    <input type="image" src="imagens/atualizar.png" width="17" height="17"/>
    
    </form>
    </td>
    <td align="center"><?php echo $meucarrinho [$i] ['preco'] ?></td>
    
    <?php
	
	$subtotal = $meucarrinho [$i]['preco'] * $meucarrinho[$i]['quantidade'];
	$total = $total + $subtotal;
	
	?>
    
     <td height="27" align="center"><?php echo $subtotal ?>
     
     
     </td>
     <td align="center"><form action="" method="post">
     <input name="id3" type="hidden" value=" <?php echo $i ?>" />
     <input name="" type="image" src="imagens/delete.png" width="17" height="17" />
     </td>
  </tr>
  <?php
		}
		}
  }
  ?>
 
  <tr>
    <td height="36" colspan="3" align="right"> Total: </td>
    <td align="center"><?php if (isset ($total)) echo $total; ?> </td> 
    
  </tr>
</table>
<p>&nbsp;</p>
<p><a href="index.php">Voltar</a></p>
</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@GabrielaCosta Poxa,  dessa vez não sei como ajudar.

Vejo algumas coisas ali que poderiam estar erradas, mas estou na dúvida.

 

Por exemplo esta parte:

if($pos<>-1){

No php seria:

if($pos != -1){

Esta variável: $total = ;

Não está atribuindo nada, portanto ela não deveria ter o sinal de igual.

 

Outro caso é a linha:

$meucarrinho)<>NULL

 

deve ser

$meucarrinho) != NULL

Enfim,  não consegui descobrir onde está erro exato que não permite retirar o item do carrinho.

Outra coisa que notei, é que você está usando array. Poderias usar o banco de dados, seria um pouco mais fácil. do que manipular o array.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia

 

<?php include('conecta.php'); ?>

<!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=utf-8" />
<title>Carrinho de Compras</title>
<style type="text/css">
input {
	text-align: center;
}
</style>
</head>

<body>
<p>Carrinho de Compras</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Meus produtos escolhidos são:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<?php


if (isset($_POST['id_txt'])){
	
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$meucarrinho [] = array ('id' => $id, 'nome' => $nome, 'preco' => $preco, 'quantidade' => $quantidade);
}

session_start();

if (isset($_SESSION['carrinho'])){
	$meucarrinho = $_SESSION['carrinho'];
if (isset($_POST['id_txt'])){
$id = $_POST['id_txt'];
$nome = $_POST['nome'];
$quantidade = $_POST['quantidade'];
$preco = $_POST['preco'];
$pos = -1;
for ($i=; $i<count($meucarrinho); $i++){
if ($id == $meucarrinho[$i] ['id'])	{
	$pos = $i;
}
}

if($pos<>-1){
	$quant = $meucarrinho[$pos] ['quantidade'] + $quantidade;
	$meucarrinho[$pos] = array ('id' => $id, 'nome' => $nome, 'quantidade' => $quant, 'preco' => $preco);	
}

else {
	$meucarrinho[] = array ('id' => $id, 'nome' => $nome,'quantidade' => $quantidade, 'preco' => $preco);
}

}
}

if (isset ($_POST['id2'])){
	$indice = $_POST['id2'];
	$quant = $_POST['quantidade2'];
	$meucarrinho [$indice] ['quantidade'] = $quant;
	
}

if (isset ($_POST['id3'])){
	$indice = $_POST['id3'];
	$meucarrinho [$indice] = NULL;

}

if (isset ($meucarrinho)) $_SESSION['carrinho'] = $meucarrinho;

?>
<table width="916" height="140" border="0">
  <tr>
    <td colspan="5" align="center" bgcolor="#CC6600">Produtos</td>
  </tr>
  <tr align="center">
   
    <td width="607" bgcolor="#FFFF00">Nome</td>
    <td width="143" bgcolor="#FFFF00">Quantidade</td>
    <td width="90" bgcolor="#FFFF00">Preço</td>
     <td width="58" height="26" colspan="2" bgcolor="#FFFF00">Sub total</td>
  </tr>
  <?php
 
  if (isset ($meucarrinho)){
	  
	  $total = ;
	  
	for($i=; $i < count($meucarrinho); $i++)
	{
		
		if (array_key_exists($i, $meucarrinho)<>NULL){		
	

  ?>

  <tr>
   
    <td><?php echo $meucarrinho [$i] ['nome'] ?></td>
    <td width="2" height="2" align="center">
	
    <form action="" method="post" name="Atualizar">
    <input name="id2" type="hidden" value="<?php echo $i ?>" />
    <input name="quantidade2" type="text" value="<?php echo $meucarrinho [$i] ['quantidade'] ?>" size="2" maxlength="2" />
    <input type="image" src="imagens/atualizar.png" width="17" height="17"/>
    
    </form>
    </td>
    <td align="center"><?php echo $meucarrinho [$i] ['preco'] ?></td>
    
    <?php
	
	$subtotal = $meucarrinho [$i]['preco'] * $meucarrinho[$i]['quantidade'];
	$total = $total + $subtotal;
	
	?>
    
     <td height="27" align="center"><?php echo $subtotal ?>
     
     
     </td>
     <td align="center"><form action="" method="post">
     <input name="id3" type="hidden" value="<?php echo $i?>" />
     <input name="" type="image" src="imagens/delete.png" width="17" height="17" />
     </td>
  </tr>
  <?php
		}
		}
  }
  ?>
 
  <tr>
    <td height="36" colspan="3" align="right"> Total: </td>
    <td align="center"><?php if (isset ($total)) echo $total; ?> </td> 
    
  </tr>
</table>
<p>&nbsp;</p>
<p><a href="index.php">Voltar</a></p>
</body>
</html>

@dif experimentei as tuas sugestões, mas não mudou nada :), agora de pois de andar para lá a experimentar não sei quantas formas aparecem me erros

Sem Título as.png

Sem Título.png

Link para o comentário
Compartilhar em outros sites

  • Moderador

@GabrielaCosta Os erros desta vez,  estão acusando que uma das variáveis  está vazia preço na linha 115 do carrinho.php

Linha 45, sobre offset. Ou seja, este erro provavelmente está no array de produtos.

 

Sempre que der um erro de offset, se tiver usando array, é sinal que algum índice passou do limite do vetor.

 

e erro de index de variáveis é por que o valor está vazio. 

 

 

Minha recomendação é que evite de usar o array para armazenar os produtos no carrinho.

Use um banco de dados e sessions. Tornaria seu trabalho um pouco mais fácil :thumbsup:

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...