Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
GabrielaCosta

Loja virtual

Recommended Posts

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');
?>

 

 

 

 

 

Editado por dif
Inserir o código dentro da tag CODE <> e mover para o local correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Bom dia 

    Já mudei o código, e agora correu tudo bem.

    Muito Obrigado pela ajuda

    Qualquer duvida volto a perguntar ;)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @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>

     

    Editado por dif
    Por gentileza, use o botao <> no editor para postar um código.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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>

     

    Editado por dif
    Por favor, ao postar um código antes de "colar" no seu tópico CLIQUE no botão "<>" no painel do editor. Este botão é um recurso especial para postar códigos. Evite que seus posts e tópicos sejam apagados ou editados. passe a usar sempre este botão.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @GabrielaCosta O que eu vejo de errado nesse último código que postou foi a linha:

     

    $resultado = mysqli_query($consulta);

    Falta a conexão ali antes de $consulta dentro da função.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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>
    

     

    Editado por GabrielaCosta

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Editado por GabrielaCosta

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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){	
    	
    
      ?>

     

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @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>

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×