Palavra:   

Revista PHP / PHP

Carlos Silva

Desenvolvedor web, certificado ISPA CYCLADES e Macromedia. Desenvolvedor usando as tecnologias C#, JSP, PHP, JavaScript, XML, ABAP, Tableless e outros. Certificado em Segurança da Informação e atualmente trabalhando com ativos de Rede Cisco.

Carrinho de compras com PHP e MySQL

Olá leitores da Revista PHP,  gostaria primeiramente de agradecer aos e-mails recebidos sobre meus artigos e gostaria de aproveitar para convidar aos leitores para enviar seus artigos e contribuir para a comunidade PHP.

Bom, vamos começar criando nossas tabelas que utilizaremos no decorrer do artigo.

Iniciamos a criação da tabela de produtos, eu optei por apenas alguns campos mais por questões de exemplo para esse artigo, mas você poderá incrementar com os campos que achar melhor, exemplos comum encontrados > peso, quantidade e outros.

O campo peso é muito usado para calcular preço de transporte e quando se quer colocar um preço com frete grátis, podemos colocar o peso como zero.

OBS: No campo preço eu optei por um tipo doble (10,2)  precisão de 2 casas decimais, creio que não precisa ser modificado pois esse valor atente bem as necessidades atuais.

Criando a tabela tbl_produtos
SQL
  1. CREATE TABLE `tbl_produtos` (
  2. `cod` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `nome` VARCHAR( 150 ) NOT NULL ,
  4. `img` VARCHAR( 36 ) NOT NULL ,
  5. `preco` DOUBLE( 10, 2 ) NOT NULL
  6. ) ENGINE = MYISAM ;
www.revistaphp.com.br
OBS: Caso você optar por incluir mais campos, não se esqueça de modificar mais adiante as opções de insert e update.

Depois de criado nossa tabela, vamos popular com alguns produtos, no código abaixo mostro somente a inclusão de 2 produtos, porem faça inclusão de no mínimo  4 para melhor ficar  um visual melhor ao listar nossos produtos.

Populando a tabela tbl_produtos
SQL
  1. INSERT INTO `tbl_produtos` ( `cod` , `nome` , `img` , `preco` )
  2. VALUES (
  3. NULL , 'Notebook HP 2160br', '001.jpg', '5450'
  4. ), (
  5. NULL , 'Computador HP', '002.jpg', '1400'
  6. );
www.revistaphp.com.br
Nosso próximo passo é criarmos a tabela de carrinho de compras que será responsável em armazenar os produtos selecionados pelo visitante.

Repare ainda o campo chamado sessao, esse campo será o responsável por identificar cada pessoa no ato de carregar seu carrinho, e você pergunta.

Como isso é feito ?

Resposta: Cada visitante recebe uma sessão atual ao visitar o site,  e para  recuperar essa sessão atual utilizamos session_id(), esperimente pegar um arquivo e colocar um echo session_id() que deverá aparecer uma seqüência de caracter que é no caso nossa sessão atual.

session_id(): Retorna o id de sessão para a sessão atual ou uma string vazia ("") se não houver sessão atual (não existe um id de sessão atual).

Criando
a tabela tbl_carrinho
PHP
  1. CREATE TABLE `tbl_carrinho` (
  2. `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `cod` INT( 11 ) NOT NULL ,
  4. `nome` VARCHAR( 150 ) NOT NULL ,
  5. `preco` DOUBLE( 10, 2 ) NOT NULL ,
  6. `qtd` INT( 11 ) NOT NULL ,
  7. `sessao` TEXT NOT NULL
  8. ) ENGINE = MYISAM ;
www.revistaphp.com.br
Agora chegou a hora de criarmos nossos arquivos .php e vamos começar com nosso arquivo de conexão com banco de dados.

No início apenas definimos os valores usados para conectarmos a nossa base de dados MySQL.

mysql_connect: Abre ou reutiliza uma conexão com um servidor MySQL.

O servidor MySQL. Também pode incluir um número de porta, exemplo "servidor:porta" ou um caminho para um socket local,

exemplo ":/caminho/para/socket" para o servidor local(localhost).

Se a diretiva do PHP mysql.default_host não estiver definida(padrão), então o valor padrão é 'localhost:3306'

No meu caso como já está definido por padrão, não precisei definir a porta.

Criando
o arquivo conn.php
PHP
  1. <?php
  2. $hostname_conn = "localhost";
  3. $database_conn = "artigos";
  4. $username_conn = "username";
  5. $password_conn = "senha";
  6.  
  7. // Conectamos ao nosso servidor MySQL
  8. if(!($conn = mysql_connect($hostname_conn,$username_conn,$password_conn)))
  9. {
  10. echo "Erro ao conectar ao MySQL.";
  11. }
  12. // Selecionamos nossa base de dados MySQL
  13. if(!($con = mysql_select_db($database_conn,$conn)))
  14. {
  15. echo "Erro ao selecionar ao MySQL.";
  16. }
  17. ?>
www.revistaphp.com.br
Agora chegou a parte legal que é a listagem dos produtos na qual vamos selecionar para incluirmos no carrinho de compras.
Logo no  início eu estou definindo o charset que nosso tipo de codificação

charset=iso-8859-1

Na linha fazemos nosso include que será usado para conectarmos a nossa base de dados.

include "Connections/conn.php";

Nas linhas abaixo fazemos nosso select a qual defini selecionar somente 4 registros e chamo a função GeraColunas  passando por parâmetro o número de 2 colunas e nosso sql.

$sql = "SELECT * FROM tbl_produtos ORDER BY RAND() LIMIT 0,4";
GeraColunas(2, $sql)


Após as linhas acima fazemos nosso for para listar nossos registros e armazenamos nas variáveis onde na variável $preco eu faço a formatação usando number_format().

number_format() retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três):

Agora montamos nosso HTML dinâmico para listar os produtos já com as variáveis já nos devidos lugares. E para um melhor entendimento algumas linhas estão comentadas.

Criando
o arquivo produtos.php
PHP
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Carrinho de Compras</title>
  6. </head>
  7.  
  8. <body>
  9. <div align="center">
  10. <?php
  11. include "Connections/conn.php";
  12. //*********************************************************************
  13. // CONFIGURAÇÃO DE BANCO DE DADOS
  14. //*********************************************************************
  15. $con = mysql_connect($hostname_conn,$username_conn,$password_conn);
  16. $bd = mysql_select_db($database_conn);
  17. ?>
  18. <table cellSpacing=1 cellPadding=0 width="50%" align=center border=0>
  19. <tr>
  20. <td>
  21. <?
  22. //*********************************************************************
  23. // GERA A INSTRUÇÃO SQL E CHAMA A FUNÇÃO PARA GERAR AS COLUNAS
  24. //*********************************************************************
  25. $sql = "SELECT * FROM tbl_produtos ORDER BY RAND() LIMIT 0,4";
  26. GeraColunas(2, $sql)
  27. ?>
  28. </td>
  29. </tr>
  30. </table>
  31. <?
  32. //*********************************************************************
  33. // FUNÇÃO: GERACOLUNAS
  34. // Parametros:
  35. // $pNumColunas (int) > Quant. de colunas para distribuição
  36. // $pQuery (string) > Query de registros
  37. //*********************************************************************
  38. function GeraColunas($pNumColunas, $pQuery) {
  39. $resultado = mysql_query($pQuery);
  40. echo ("<table width='100%' border='0'>\n");
  41. for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
  42.  
  43. for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
  44. $linha = mysql_fetch_array($resultado);
  45. if ($i > $linha) {
  46. if ( $intCont < $pNumColunas-1) echo "</tr>\n";
  47. break;
  48. }
  49.  
  50. $cod = $linha[0];
  51. $nome = $linha[1];
  52. $img = $linha[2];
  53. $preco = number_format($linha[3],2,",",".");
  54.  
  55. if ( $intCont == 0 ) echo "<tr>\n";
  56. echo "<td>";
  57. // Aqui você inclui o conteudo
  58. echo "<table width='266' border='0' cellspacing='0' cellpadding='0'>";
  59. echo "<tr>";
  60. echo "<td width='250' height='141' valign='middle'><div align='center'><img src='produtos/".$img."' border='0' width='189' height='141' /></div></td>";
  61. echo "</tr>";
  62. echo "<tr>";
  63. echo "<td>";
  64. echo "<table width='92%' border='0' align='center' cellpadding='0' cellspacing='0'>";
  65. echo "<tr>";
  66. echo "<td><div align='center' style='font-size:10px;font-family:Verdana'><strong><a href='carrinho.php?cod=".$cod."&acao=incluir'>".$nome."</a></strong></div><strong><div align='center'><font color='#FF0000' size='4px'> R$ ".$preco." </font></strong></div></td>";
  67. echo "</tr>";
  68. echo "<tr>";
  69. echo "<td><div align='center' style='font-size:10px;font-family:Verdana'><a href='carrinho.php?cod=".$cod."&acao=incluir'><img src='imgs/add_carrinho.jpg' border='0'/></a></div><br></td>";
  70. echo "</tr>";
  71. echo "</table>";
  72. echo "</td>";
  73. echo "</tr>";
  74. echo "</table>";
  75.  
  76. // Aqui é o final do conteudo
  77. echo "</td>";
  78.  
  79. if ( $intCont == $pNumColunas-1 ) {
  80. echo "</tr>\n";
  81. } else { $i++; }
  82. }
  83.  
  84. }
  85. echo ('</table>');
  86. }
  87.  
  88. ?>
  89. </div>
  90. </body>
  91. </html>
www.revistaphp.com.br
Após algumas linhas de código, o resultado do arquivo produtos.php é a imagem abaixo, isso é porque eu defini apenas 2 colunas a serem listadas e de forma aleatória que foi definido no nosso SQL usando  RAND().


Esse arquivo principal do nosso sistema e que é nosso objetivo principal, e como no decorrer do artigo vamos usar muita session_id(), vamos relembrar mais uma vez.

session_id(): Retorna o id de sessão para a sessão atual ou uma string vazia ("") se não houver sessão atual (não existe um id de sessão atual).

Logo no inicio iniciamos nossa sessão que será de fundamental importância no carrinho, sem isso nosso carrinho não irá funcionar.

Repare que nas linhas abaixo, recuperamos os parâmetros  código do produto e a ação usada.

$acao = $_GET['acao'];
$cod =  $_GET['cod'];


A variável $acao indicará ao nosso código o que fazer, que poderá ser incluir, excluir ou modificar os dados do carrinho.

Ação incluir

Logo no começo verificamos se a $acao é igual a incluir se for incluir temos que verificar se veio algum produto para incluirmos no nosso carrinho, caso tenha algum produto, verificamos se o conteúdo da variável é numérica.

OBS: Temos que lembrar que mesmo atendendo os dois quesitos   ainda temos que verificar se esse produto já não está no carrinho e assim evitarmos incluir produtos repetidos no carrinho, porem repare que usamos a condição  abaixo.

AND tbl_carrinho.sessao = '".session_id()."'


Essa condição é para garantir que não terá um produto repetido no carrinho para uma determinada pessoa que é nosso session_id().

Podemos observar ainda que mesmo atendendo os 3 quisitos, ainda verifico se o produto que a pessoa deseja incluir existe em nossa base de dados, isso evita a pessoa mudar manualmente um código do produto na URL e se atender esse último quesito, aí sim fazemos nosso insert na base de dados.

Ação excluir

Nos 3 primeiros IF eu verifico se a ação é excluir, se for passo para verificar se existe algum conteúdo na variável $cod que é a variável do nosso produto e verificamos se é do tipo numérico.

Após fazermos as 2 verificações acima, devemos ver se o produto a ser excluido existe mesmo no nosso carrinho para a session_id() atual.

Se a variável $totalRows_rs_car for maior do que zero, é porque existe o produto a ser excluido, então excluimos o produto com o código e session_id() definido.

Ação modificar

Antes de entrar em mais detalhes devemos reparar no código HTML a linha abaixo, pois se reparar definimos um nome igual a qtd que é um array com os valores das quantidades dos produtos que iremos modificar e como esse campo  é comum a todos os produtos  então  usamos um array com os campos  chave dos produtos.

<input type"text" size="2" name="qtd[<?=$row_rs_produto_carrinho['cod']?>]" value="<?=$row_rs_produto_carrinho['qtd']?>" />


Armazenamos o conteúdo na variável $quant e verificamos se é um array e iniciamos a linha abaixo para percorrer nosso array para modificarmos as quantidades dos produtos caso os valores forem numéricos.

foreach($quant as $cod => $qtd)

Após a ação modificar simplesmente listamos os produtos do carrinho de compras referente a session_id() atual e dentro do while temos a linha abaixo que pega o preço do produto e multiplica pela quantidade desejada

$soma_carrinho += ($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);

Criando
o arquivo carrinho.php
PHP
  1. <?php
  2. // Iniciamos nossa sessão que vai indicar o usuário pela session_id
  3. include "Connections/conn.php";
  4. // Recuperamos os valores passados por parametros
  5. $acao = $_GET['acao'];
  6. $cod = $_GET['cod'];
  7.  
  8.  
  9. // Verificamos se a acao é igual a incluir
  10. if ($acao == "incluir")
  11. {
  12. // Verificamos se cod do produto é diferente de vazio
  13. if ($cod != '')
  14. {
  15. // Se for diferente de vazio verificamos se é numérico
  16. if (is_numeric($cod))
  17. {
  18. // Tratamos a variavel de caracteres indevidos
  19. $cod = addslashes(htmlentities($cod));
  20.  
  21. // Verificamos se o produto referente ao $cod já está no carrinho para o session id correnpondente
  22. $query_rs_carrinho = "SELECT * FROM tbl_carrinho WHERE tbl_carrinho.cod = '".$cod."' AND tbl_carrinho.sessao = '".session_id()."'";
  23. $rs_carrinho = mysql_query($query_rs_carrinho, $conn) or die(mysql_error());
  24. $row_rs_carrinho = mysql_fetch_assoc($rs_carrinho);
  25. $totalRows_rs_carrinho = mysql_num_rows($rs_carrinho);
  26.  
  27. // Se o total for igual a zero é sinal que o produto ainda não está no carrinho
  28. if ($totalRows_rs_carrinho == 0)
  29. {
  30. // Aqui pegamos os dados do produto a ser incluido no carrinho
  31. $query_rs_produto = "select * from tbl_produtos where cod = '".$cod."'";
  32. $rs_produto = mysql_query($query_rs_produto, $conn) or die(mysql_error());
  33. $row_rs_produto = mysql_fetch_assoc($rs_produto);
  34. $totalRows_rs_produto = mysql_num_rows($rs_produto);
  35.  
  36. // Se total for maior que zero esse produto existe e então podemos incluir no carrinho
  37. if ($totalRows_rs_produto > 0)
  38. {
  39. $registro_produto = mysql_fetch_assoc($rs_produto);
  40. // Incluimos o produto selecionado no carrinho de compras
  41. $add_sql = "INSERT INTO tbl_carrinho (id, cod, nome, preco, qtd, sessao)
  42. VALUES
  43. ('','".$row_rs_produto['cod']."','".$row_rs_produto['nome']."','".$row_rs_produto['preco']."','1','".session_id()."')";
  44. $rs_produto_add = mysql_query($add_sql, $conn) or die(mysql_error());
  45. }
  46. }
  47. }
  48. }
  49. }
  50.  
  51. // Verificamos se a acao é igual a excluir
  52. if ($acao == "excluir")
  53. {
  54. // Verificamos se cod do produto é diferente de vazio
  55. if ($cod != '')
  56. {
  57. // Se for diferente de vazio verificamos se é numérico
  58. if (is_numeric($cod))
  59. {
  60. // Tratamos a variavel de caracteres indevidos
  61. $cod = addslashes(htmlentities($cod));
  62. // Verificamos se o produto referente ao $cod está no carrinho para o session id correnpondente
  63. $query_rs_car = "SELECT * FROM tbl_carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
  64. $rs_car = mysql_query($query_rs_car, $conn) or die(mysql_error());
  65. $row_rs_carrinho = mysql_fetch_assoc($rs_car);
  66. $totalRows_rs_car = mysql_num_rows($rs_car);
  67.  
  68. // Se encontrarmos o registro, excluimos do carrinho
  69. if ($totalRows_rs_car > 0)
  70. {
  71. $sql_carrinho_excluir = "DELETE FROM tbl_carrinho WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
  72. $exec_carrinho_excluir = mysql_query($sql_carrinho_excluir, $conn) or die(mysql_error());
  73. }
  74. }
  75. }
  76. }
  77.  
  78. // Verificamos se a ação é de modificar a quantidade do produto
  79. if ($acao == "modifica")
  80. {
  81. $quant = $_POST['qtd'];
  82. // Se for diferente de vazio verificamos se é numérico
  83. if (is_array($quant))
  84. {
  85. // Aqui percorremos o nosso array
  86. foreach($quant as $cod => $qtd)
  87. {
  88. // Verificamos se os valores são do tipo numeric
  89. if(is_numeric($cod) && is_numeric($qtd))
  90. {
  91. // Fazemos nosso update nas quantidades dos produtos
  92. $sql_modifica = "UPDATE tbl_carrinho SET qtd = '$qtd' WHERE cod = '$cod' AND sessao = '".session_id()."'";
  93. $rs_modifica = mysql_query($sql_modifica, $conn) or die(mysql_error());
  94. }
  95. }
  96. }
  97.  
  98. }
  99. ?>
  100. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  101. <html xmlns="http://www.w3.org/1999/xhtml">
  102. <head>
  103. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  104. <title>Carrinho de Compras</title>
  105. <style type="text/css">
  106. <!--
  107. .style3 {font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; }
  108. .style4 {
  109. color: #FF0000;
  110. font-weight: bold;
  111. }
  112. -->
  113. </style>
  114. </head>
  115.  
  116. <body>
  117. <div align="center"><img src="imgs/carrinho.jpg" width="589" height="102" />
  118. </div>
  119. <form action="carrinho.php?acao=modifica" method="post">
  120. <table width="100%" border="1" cellspacing="0" cellpadding="0">
  121. <tr>
  122. <th width="36%" scope="col"><div align="left">PRODUTO</div></th>
  123. <th width="22%" scope="col">PRE&Ccedil;O</th>
  124. <th width="13%" scope="col">QUANTIDADE</th>
  125. <th width="14%" scope="col">SUBTOTAL</th>
  126. <th width="15%" scope="col">&nbsp;</th>
  127. </tr>
  128.  
  129. <?
  130. $sql_meu_carrinho = "SELECT * FROM tbl_carrinho WHERE sessao = '".session_id()."' ORDER BY nome ASC";
  131. $exec_meu_carrinho = mysql_query($sql_meu_carrinho, $conn) or die(mysql_error());
  132. $qtd_meu_carrinho = mysql_num_rows($exec_meu_carrinho);
  133.  
  134. if ($qtd_meu_carrinho > 0)
  135. {
  136. $soma_carrinho = 0;
  137. while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho))
  138. {
  139. $soma_carrinho += ($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);
  140. ?>
  141. <tr>
  142.  
  143. <td><span class="style3">
  144. <?=$row_rs_produto_carrinho['nome']?>
  145. </span></td>
  146. <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco'],2,",","."); ?></div></td>
  147. <td><div align="center" class="style3"><input type"text" size="2" name="qtd[<?=$row_rs_produto_carrinho['cod']?>]" value="<?=$row_rs_produto_carrinho['qtd']?>" /></div></td>
  148. <td><div align="center" class="style3"><?= number_format($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></div></td>
  149. <td><div align="center"><a href="carrinho.php?cod=<?=$row_rs_produto_carrinho['cod']?>&acao=excluir"><img src="imgs/del_carrinho.jpg" width="110" height="21" border="0" /></a></div></td>
  150. </tr>
  151. <?
  152. }
  153. }
  154. ?>
  155. <tr>
  156. <td colspan="3"><div align="right"><strong>TOTAL:</strong>&nbsp; </div> <div align="right"></div> <div align="right"></div></td>
  157. <td><div align="center" class="style3 style4">
  158. <?= number_format($soma_carrinho,2,",","."); ?></div></td>
  159. <td>&nbsp;</td>
  160. </tr>
  161. <tr>
  162. <td colspan="5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  163. <tr>
  164. <th width="33%" height="60" scope="col"><span class="style3"><a href="produtos.php"><img src="imgs/comprando.jpg" width="287" height="40" border="0" /></a></span></th>
  165. <th width="33%" scope="col">&nbsp;</th>
  166. <th width="34%" scope="col"><label>
  167. <input type="image" name="imageField" src="imgs/atualizar.jpg" />
  168. </label></th>
  169. </tr>
  170. </table></td>
  171. </tr>
  172. </table>
  173. </form>
  174. </body>
  175. </html>
www.revistaphp.com.br
Resultado do Carrinho após incluir 2 produtos e modificar a quantidade de um deles


Bom pessoal, espero que tenham gostado, aguardo comentários.


Abs
Carlos Silva Jr

Opções de Interação

Comentários

Otimo
Por: marcios, 03/08/2010   18:36:56
gostei muito deste topico, mais faltou, concluir a compra, se alguem conseguiu confeccionar o restante deste artigo, mande para mim "mpstransito@bol.com.br", agradeço.
Muito Bom
Por: Fabio, 20/07/2010   15:35:03
Boa Tarde, eu nao podia ficar sem comentar esse artigo.
Está incrivel, muito bem explicado, basta ler, entender e modificar de acordo com suas necessidades.
Parabens ao Carlos e aos meus colegas que comentaram. Valeu Pienkovski, conseguir limpar o carrinho com sua dica :)
Sensacional
Por: Marcos, 07/07/2010   11:15:59
Cara muito obrigado, você me salvou, eu não fazia a mínima idéia de como implementar um carrinho de compras, e vendo o seu código conseguir criar o meu. E ainda resolvi o problema do banco de dados que muitos reclamaram, pois coloquei a data no carrinho guardando no banco, e comparo com a data atual, e se a data no carrinho for maior do que 2 ele deleta do banco de dados, pois se passaram 2 dias o usuário não vai comprar mais. E outro detalhe é o lance do get, que você esqueceu de pegá-las como $_GET que aqui não funcionou mas dependendo de como tá o php.ini funciona, mas enfim valeu mesmo...
Destruindo a session no BD
Por: Luis Carlos, 26/06/2010   21:05:20
Olá indo por esse caminho de gravar o carrinho no BD e não numa session (como arquivo), como faria pra destruir a session e excluir os dados do BD caso o usuário não finalise a compra or algum motivo?

Teria alguma sugestão?
Pontos importantes
Por: Anderson, 08/01/2010   09:17:00
Bom dia

Esse tipo de carrinho ocupar muito espaço no banco de dados porque sempre vai gravar informações no banco. Você tem alguma soluções que usa só sessão só inserir o pedido quando usuário for finalizar o carrinho
Usando duas tabelas
Por: Carina, 13/11/2008   07:56:27
Oi!
sou iniciante em php, estou usando este exemplo, mas gostaria de saber como ficaria se utilizar duas tabelas, por exemplo item de pedido, com os seguintes dados (id_pedido,cod_produto,preco,qtd), sendo id_pedido e cod_produto como chave estrangeira da tabela pedido e produto, e a tabela pedido com id (chave primaria), nome e sessao. muito obrigada
Ajuda
Por: karen, 04/09/2008   11:51:35
ola!!
eu sou nova em php e estou precisando fazer a parte de carrinho de compra fui testar o seu codigo e mostra tudo certinho porem quando eu incluo no carrinho de compra nao aparece as informacoes na tela, mais no banco mostra que eu efetuei uma compra, o que pode ser. muito obrigada!
PAGINÇÃO
Por: JANOWELLITON, 23/04/2008   14:44:01

TEM COMO CRIAR UMA PAGINAÇÃO NESSE SISTEMA DE CARRINHO DE COMPRAS.
HELP
PARABENS PELO ARTIGO

Finalizar
Por: vagner, 03/04/2008   21:57:37
Alguem pode ajudar com a pagina para finalizar a compra, enviando o pedido para o bd.
Grato!!
Limpar o carrinho
Por: Pienkovski, 09/03/2008   10:27:01
Esse tutorial funcionou muito bem comigo. Só que, quando concluía a compra, os dados comprados continuavam no carrinho. E não havia session_destroy que limpasse o carrinho. Aí eu descobri, graças a Deus, que existe uma função chamada session_regenerate_id(); que encerra a sessão em andamento e se houver outra compra cria outra sessão, sem detonar os dados que estão no Banco de Dados. Era isso que eu estava precisando. Para maiores informações sobre a session_regenerate_id(); entre no seguinte endereço: http://br.php.net/manual/pt_BR/function.se...generate-id.php. Obrigado gente, valeu Carlos!