| Maior acervo de vídeo aulas da web

Não consegue visualizar a vídeo aula?

Carrinho de Compras com PHP

Salve Amigos do VAB, David CHC em mais uma video aula de PHP. Nessa vídeo aula iremos aprender como criar um carrinho de Compras usando Session, adicionando, removendo produtos, e alterando a quantidade.
Boa video Aula.

Arquivos Usados


Você gostou dessa Vídeo Aula, então compartilhe com seus amigos

Artigos Relacionados

Comentários

  • Leonardo Tavares

    Super vídeo aula!!
    David parabéns :)
    Abraço…

  • http://tutorial-city.net Tutorial City

    Boa vídeo aula. Esse é o tipo de aula que os usuários do VAB merecem.

  • http://www.aquidownloads.com.br/ LuisH

    Muito Boa essa video aula nunca achei na net algo parecido… nota 10 =D adorei tava com saudades das video aulas do David são sempre muito interessantes! cara falando em nota 10 vcs podiam quem sabi pensar em botar ratings… nos videos aqueles estrelinhas pra gente avaliar igual tem no youtube ia ficar bem legal essa dai eu dava o maximo de estrelinhas uahsuhs flws abraços continuem assim =D vlw

  • http://www.rafaelrolim.com.br Rafael Rolim

    Pô David, faltava isso!!! Excelente tutorial, era tudo que eu precisava saber!!! Muito obrigado.
    A respeito do meu site, já está no ar, mas, não vou divulgar ainda porque não está nada pronto. Mas olha lá…
    Ficou bem pesado e mal fatiado, mas vou deixar os textos como imagem mesmo porque quero aquela fonte.
    Já gravei um tutorial e vou colocar lá em breve e o portifólio está todo errado. Mas espero com o tempo ir arrumando isso.
    PS.: Críticas são bem vindas
    Abraço

  • http://www.rafaelrolim.com.br Rafael Rolim

    a propósito, o meu tutorial tá aqui:
    http://videolog.uol.com.br/video.php?id=461795

    • http://www.videoaulasbrasil.com.br David CHC

      @Rafael Rolim, envie pelo formulário do site, com a imagem e o titulo e descrição.

  • Leonardo Tavares

    Observei uma coisa na vídeo aula que seu notepad++ completa os comandos php, isso é algum plugin que você colocou ou tem como fazer isso nas configurações?

    • http://www.videoaulasbrasil.com.br David CHC

      @Leonardo Tavares, Isso é uma configuração do notepad++, basta ir em Configurações > Preferencias > Backup/Autocompletar, e marca o Habilitar auto completar para cada entrada, e marcar Completar funções, vc pode marcar tbm Mostrar Dica de parâmetro a cada entrada

  • Leonardo Tavares

    vlw David :)

  • Sergio Araujo – SP

    Ola David blz…

    Simplesmente fantastica essa video, vc esta de parabens, muito bem explicada.

    Sera que vc não tem um DVD de curso para montagem de uma loja virtual completo.
    Seria interessante tbem o pessoaldo MXMaster pensar em montar um, aposto que muita gente iria adorar e eu seria um desses…

    Abraços e mais uma vez parabens pela didatica.

    • http://www.videoaulasbrasil.com.br David CHC

      @Sergio Araujo, pretemos ter um curso de php, no primeiro momento não será uma loja virtual, queremos fazer algo gradativo, mas quem sabe mais pra frente. abrs

  • Julio -SP

    Meus parabéns pela vídeo aula,
    perfeita, desta forma o David eleva
    o VAB num nível de qualidade em vídeo aula extremamente didatico.
    Não faltou nada, nada no carrinho.

  • http://www.solucaosistemas.com.br Xavier

    Parabens David e ao Portal VBA, por esta compartilhando otimas video aula para nos…

  • http://www.solucaosistemas.com.br Xavier

    Opa VAB :D

  • Anderson Farias

    Video aula sensacional e jamais vista na Web! Parabéns David!

  • http://www.habbid.com.br/ André Silva

    @David, não estou conseguindo upar os meus vídeos no vimeo. Utilizo o formato .avi, você usar qual?

    • http://www.videoaulasbrasil.com.br David CHC

      @André Silva, eu uso formato .wmv para enviar. Na primeira vez que tentei enviar, deu erro, só na segunda vez que funcionou

  • http://marcelowd.wordpress.com Marcelo Torres

    Sensacional David!

    Essa video aula chegou na hora certa pra mim, tava precisando disso, valeu!

  • http://www.videoaulasbrasil.com.br David CHC

    Valeu galera, a gente do VAB sempre tentamos publicar e/ou criar vídeo aulas que possa ajudar a todos.

  • Paulo Sérgio Dias

    Excelênte vídeo

  • Samuel

    Nossa David vc salvou minha vida com essa video aula. Muito Obrigado Continue assim

  • http://www.tiservices.info Juarez Silva

    David, essa aula foi super show msm, gostaria de saber ou se pensa em fazer uma video aula como essa onde o usuário poderia optar a forma de pagamento como cartões de crédito e boletos bancários.
    Continue com esse belo trabalho e parabens à toda equipe.
    Abraço!

  • Leonardo

    Ótima video aula. Sou iniciante em php/mysql. To com dúvida quanto a fazer inserção de dados no banco trabalhando com foreign keys. Por exemplo, tenho as tabelas vendedor, produto, pedido e itens_pedido.
    A tabela vendedor com os campos:
    codFunc PK Fk relacionada a tabela funcionarios, percentualComissao.
    A tabela produtos com os campos: CodProduto PK, nome, qtde_estoque e preco_venda.
    A tabela pedido com os campos: CodPedido PK, ValorTotalPedido, DataPedido.
    E a tabela itens_pedido comos campos: codPedido PK FK, codProduto PK FK, quantidade e precoPago.
    Aí por exemplo o cliente preenche o form pedidos, não sei como adicionar esses dados no banco.

    • http://www.videoaulasbrasil.com.br David CHC

      @ Leonardo, vc vai inserir os dados primeiro na tabela de pedido (id do usuario, total da venda, etc) depois vc resgata o id da tabela de pedidos (mysql_insert_id), e ai sim vc inseri os produtos, com id e o outros campos na tabela itens_pedidos.

  • Leonardo

    Blza David vou tentar aqui. Estou lendo o livro “php e mysql desenvolvimento web”, achei o livro de facil entendimento, é mto bem explicado, tinha acabado de estudar sobre arrays no php antes de assistir a video aula. Mas quando as duvidas aparecem o livro não pode responder hehe. Obrigado por compartilhar seu conhecimento conosco.

    • http://www.videoaulasbrasil.com.br David CHC

      @Leonardo, eu tbm tenho esse livro, é muito bom mesmo, ele me tirou muitas duvidas.

  • webson

    heeeeeeeee adriano, essa video aula e locura mesmo, muito bem explicada… mais qnd vcs são disponobilizar os arquivos em txt, para nós … fica mais facildescobrir os erros. valeu sucesso

    • http://www.videoaulasbrasil.com.br David CHC

      @webson, Os arquivos usados estão no forum do mxmasters, o link está na descrição da video aula

  • daniel duarte

    oi david, a sua aula ta muito legal, agora la no banco de daos ja tem ums produtos criados, vc pode me falar como é feito essa lisata de produtos q la na video aula aparece? vlw..

    • http://www.videoaulasbrasil.com.br David CHC

      @daniel duarte, vc tá dizendo como listar os produtos? Se for isso, na própria video aula eu faço isso.

  • webson sousa

    david acho que tem algum erro no codigo, qnd vou acrecentar produtos no dvd 2 e 3 ele calculas juntos, não era suposto eles calcularem separados? abraços

    • http://www.videoaulasbrasil.com.br David CHC

      @webson, ele calcula separado, tem o preço e subtotal, onde tem o preço vezes quantidade. E no Final tem o Total dos Preços

  • Mike Vieira

    Parabéns David pelo seu trabalho no MxMasters e agora aqui no VAB, eu estou gostando muito das suas Vídeo Aulas, continue assim sempre postando Super Vídeo Aulas sobre PHP com um conteúdo mega interessante !

    • http://www.videoaulasbrasil.com.br David CHC

      Obrigado @Mike Vieira

  • Mike Vieira

    Uma dúvida. Com faço para colocar foto no avatar aqui do VAB ?

    • http://www.videoaulasbrasil.com.br David CHC

      @Mike Vieira, basta vc se cadastrar no site gravatar, e cadastrar com email q vc coloca nos comentarios – http://en.gravatar.com/

  • webson sousa

    o meu amigão, descobri um erro david
    em: (echo ‘ ‘;
    Já viu onde é? image/….
    e qnd calculo o valor do dvd 2ª e 3ª eles calculam juntos…. vc pode ver se tem mais erros no arquivo? obrigado ferra

    • http://www.videoaulasbrasil.com.br David CHC

      @webson, no q fiz, não tem erro nenhum, e tbm q publiquei no forum do mxmasters, verifique o codigo q vc fez, compare com o codigo q está no forum, e reveja a video aula. Verifiquei o codigo, e tá funcionando perfeitamente. Só não tô entendo o q vc quer dizer de calcular junto. Se vc selecionar 2 dvds, no valor Total, ele vai somar os dois produtos. O valor individual dos produtos está em SubTotal, q já disse, q quantidade X preco

  • webson sousa

    hoooo david,meu pobrema e seu pobrema,rsrsr. o que estou querendo diz prof: qnd adiciono mais quantidades de dvd elas ficam sempre em 2, e vão somando, na video aula qnd acrecenta mais protutos vai ficando como acrecetamos. ex qnt*2 ai acrecento mais 3 dvd na mesma, ela fica sempre 2…. este codigo que estou testando e do forum…. mais não estressa so quero aprender, falo abraços

    • http://www.videoaulasbrasil.com.br David CHC

      @webson, estou com o mesmo codigo, e não ocorre isso, testei, e vai adicionando normalmente. E esse código é o mesmo do forum. Se alguém teve o mesmo problema do Webson, seria interessante postar, pq aqui no meu tá normal. Post seu codigo lá no forum, asssim poderei avaliar melhor.

  • webson sousa

    em quantidade coloco 5 , qnd atualizo ele fica 2 mais soma os 5 dvd… em qnto na video aula vc coloca 5 ele soma os 5 dvd. E fica 5 na tabela quantidade, este codigo peguei no forum mxmasters. blz prof.

  • webson sousa

    hoooooo prof. me desculpa o código esta otimo, o jumento aqui duplicou o código, ai estava dando erro. mais qnd vir aqui eu pago o bacalhal com vinho do porto. falo amigão não fica chatedo pq qnd não sabemos, n´so somos chato mesmo… abraços e sucesso

    • http://www.videoaulasbrasil.com.br David CHC

      @webson, tranquilo, não fico chateado, sem problema, só q era improvavel dá erro, pq tô com o mesmo codigo q postei no forum, e não modifiquei nada. Por isso disse pra verificar o codigo no forum para comparar. Se encontrou o erro, está ótimo então.

  • http://www.habbid.com.br/ André Silva

    @David, toda vez que eu trabalho com function no PHP. Ela não funciona, isto é, a página fica em branco e não realiza nenhuma ação que eu determinei.

    • http://www.videoaulasbrasil.com.br David CHC

      @André Silva, como vc tá fazendo. A estrutura da function é:

      function NomeDaFunção(Parametro da Função - opcional){
      escopo da funçao
      retorno de dados (Opcional)
      }

      E para executar a função

      NomeDaFuncao(atribui os parametros);

  • http://www.webinsw.com.br André Silva

    @David, me impressiono muito como você programa mesmo. É incrível, e vc tem uma habilidade de transmitir essas informações. E isso é muito bacana.

    Quero que saiba que és uma inspiração para mim. E continue sempre assim, ensinando como você ensina.

    Abraços.

    • http://www.videoaulasbrasil.com.br David CHC

      @André Silva, legal q o conteudo q tento passar tá te ajudando. vlw

  • Sergio Saldanha

    Mais um excelente tutorial, de grande utilidade. Na verdade, uma especial e fabulosa video-aula.

    Parabéns ao site. Creio que está se consolidando como um dos melhores da língua portuguesa, para web developers.

    Saudações

  • Sergio Saldanha

    David:
    Acabei de testar e encontro um Notice
    na linha 91 do cariinho.php:

    Undefined variable: total in line 91

    Não estou conseguindo corrigir.
    O script é o original (copiado para o Dreamweaver).
    Agradeço a ajuda.
    Abraço

    • http://www.videoaulasbrasil.com.br David CHC

      @Sergio Saldanha, depois do require(“conexao.php”);, vc coloque :

      $total = 0;

  • Sergio Saldanha

    David: o total está OK.

    A única questão agora está no ‘Atualizar Carrinho’. Quando alteramos quantidades nem sempre ocorre a atualização correta. Normalmente ele soma, mesmo que seja uma quantidade menor.
    Não vi no script um
    a href= ?acao=up&id= .$id…..
    é assim mesmo?
    Obrigado.

    • http://www.videoaulasbrasil.com.br David CHC

      @Sergio Saldanha, não tem esse link mesmo, atualização ocorre em todos os itens do carrinho, pq ele pega a quantidade atual do carrinho, e altera:

      [input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /]

      Essa parte ele vai enviar um array com o id do produto e a quantidade quando for clicado em Atualizar Carrinho. Então ele não vai somar, e sim alterar os dados q estão no campo da quantidade.

  • Sergio Saldanha

    David:
    Fiz uma modificação eliminando a primeira linha da área ‘Alterar Quantidade’ ou seja, eliminando
    if($_GET['acao'] == ‘up’){
    e incluí na primeira linha do código php uma supressão (do Notice):
    error_reporting(E_WARNING | E_PARSE); pois ele só aparece na primeira vez (um aviso de undefined index). Mas tudo funciona perfeitamente, alterando-se quantidades de qualquer item com perfeição. Creio que se deve ao fato de nenhum valor ser atribuído ao array no primeiro instante (somente após um primeiro processamento) pois o sistema funciona corretamente.
    Veja e informe.
    As video-aulas tem me entusiasmado muito e estou muito motivado.
    Abraço,
    Sergio Saldanha

    • http://www.videoaulasbrasil.com.br David CHC

      @Sergio Saldanha , if($_GET['acao'] == ‘up’) foi postado para verificar em que ação de determinada parte do código, como ele está dentro da verficação se $_GET['acao'] existe, então dentro dele, vc faria a comparação. Essa parte, não vai interferir na execução em sim, apenas acionará ação de alterar a quantidade. Não vejo pq vc tirar essa parte, e suprir a mensagem de notificação em ambiente de teste (localmente). Mas o importante é vc entender o funcionamento do carrinho. Se tive duvidas sobre o array, veja a minha video aula sobre array.

      E que bom vc gostando das video aulas, e esteja te ajuda.

  • http://www.webinsw.com.br André Silva

    @DAVID, de uma forma geral, todos que sempre enviam as vídeo aulas, são “tutores”?

    • http://www.videoaulasbrasil.com.br David CHC

      @André Silva, seriam colaboradores.

  • http://www.webdesigndaniel.com.br Daniel Jhonatan

    David, você viu que o total não esta somando os centavos e só o real, como fazer com ele passe a somar os centavos?

    • http://www.videoaulasbrasil.com.br David CHC

      @Daniel, não tinha reparado, mas me perguntaram isso no Forum do MxMasters, mas basta fazer assim para somar os centavos:

      $total += $ln['preco'] * $qtd;

  • http://www.webdesigndaniel.com.br Daniel Jhonatan

    Valeu cara agora deu certo…
    Muito Obrigado por tudo.

  • http://www.webdesigndaniel.com.br Daniel Jhonatan

    Agora eu estou com um problema na QUANTIDADE. Por exemplo quando eu clico em compram por padrão vem com o valor 1 na quantidade, mas eu altero esse número 1 para 4, 5, 5, 6 ou qualquer outro, a quantidade não muda para o numero que eu digitei. Toda vez que eu clico em atualizar carrinho somo 1 mais 1.

    • http://www.videoaulasbrasil.com.br David CHC

      @Daniel, quando vc clica em atualizar, ele não tá modificando a quantidade? Confira o script e compare com q está no link, pq ele atualiza normalmente, e é o mesmo script da video aula

  • http://www.webdesigndaniel.com.br Daniel Jhonatan

    sim esta mudando a quantidade. Mas por exemplo se no campo de quantidade estiver 1 e eu mudar para 5, e depois eu clicar em atulizar quantidade não pega o numero 5 que eu digitei no campo de quantidade. Fica somando a quantidade que já esta mais 1. mesmo se eu colocar outro numero na quantidade.

    • http://www.videoaulasbrasil.com.br David CHC

      @Daniel, veja se no form onde é para alterar, está como acao=up no action:

      [form action="?acao=up" method="post"]

      Verifica tbm ações dentro da if(isset($_GET['acao'])){, pq o codigo tá alterando normalmente, e quando manda atualizar, alterar todos os resultados, como previsto.

  • Daniel Jhonatan

    Mais uma vez muito abrigado mesmo. Tava faltando o ponto de interrogação no form.

  • Jones

    Fico muito boa essa video aula, continuem assim!!! =) Gostaria de saber onde posso perdir uma video aula???

    • http://www.videoaulasbrasil.com.br David CHC

      @Jones, diferente do Mxmasters, não colocamos essa opção, pq qualquer um pode criar video aula e enviar pra gente, não temos colunistas fixos, o único fixo realmente sou eu e o Felipe Cardoso. Mas vc pode sugerir alguma aula, pq pessoas podem querer fazê-la ou eu mesmo. Só colocar aqui nos comentários mesmo.

  • Naiara

    Bom dia! Eu gostei muito da sua video aula de criar um carrinhos de compras e até consegui fazer, mas na hora de formatar o conteudo deixando mais legal nao dei conta. Eu assisti a video aula do Felipe ensinando a formatar usando CSS – mas na video aula dele e usado listas e na sua vc ja fez direto dentro do body. Sera que vode poderia me ajudar nisso. Tipo como colocar aqueles codigos php que vai no index dentro de lista igual a video aula do Felipe – pq assim conseguirei colocar as caixas uma do lado da outra. As minhas so ficam embaixo.
    Obrigada pela atenção.

    Parabens pelas suas videos aulas – São otimas.!

    • http://www.videoaulasbrasil.com.br David CHC

      @Naiara, eu fiz direto pra poder adiantar, mas pra fazer q nem o Felipe é simples:


      [ul]
      while($ln = mysql_fetch_assoc($qr)){
      echo ‘[li]‘;
      //Aqui dentro vai o conteudo do item do carrinho.
      echo ‘[/li]‘;
      }
      [ul]

      Eu tive q trocar o sinal de menor e maior das tags html para q fosse interpretada pelo wordpress.

  • Naiara

    Ola, eu fiz mas olha como ficou por favor. Dá erro!

    <?php
    require("conexao.php");

    $sql = "SELECT * FROM produtos";
    $qr = mysql_query($sql) or die(mysql_error());

    while($ln = mysql_fetch_assoc($qr)){
    echo ‘‘;

    echo ”.$ln['nome'].’ ‘;
    echo ‘Preço : R$ ‘.number_format($ln['preco'], 2, ‘,’, ‘.’).”;
    echo ‘ ‘; echo ‘Comprar‘;
    echo ”;
    echo ‘‘;
    }

    ?>

    obrigada pela sua atenção

  • Naiara

    Eu mudei o sinal das tags para vc poder olhar.

    <?php
    require("conexao.php");

    $sql = "SELECT * FROM produtos";
    $qr = mysql_query($sql) or die(mysql_error());

    [ul]
    while($ln = mysql_fetch_assoc($qr)){
    echo ‘[li]‘;

    echo '’.$ln['nome'].’ ‘;
    echo ‘Preço : R$ ‘.number_format($ln['preco'], 2, ‘,’, ‘.’).’&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp’;
    echo ‘ ‘;
    echo ‘Comprar‘;
    echo ”;
    echo ‘[/li]‘;
    }
    [/ul]
    ?>

  • Naiara

    To tentando mudar as tags para vc poder olhar como fiz .mas nao esta indo a mensagem. ha possibilidade de vc enviar no meu email por favor.

    • http://www.videoaulasbrasil.com.br David CHC

      @Naiara, já te mandei por e-mail

  • http://www.rdstudioweb.com.br Ricardo Marangoni

    Eu sempre quis saber como fazia isso ^^

    • http://www.videoaulasbrasil.com.br David CHC

      @Ricardo, essa é uma maneira de fazer, existe outras. Pode fazer com cookie, ou banco de dados para criar o carrinho tbm.

  • Giovanni

    Como eu faço para incrementar em um sistema de pagamento isso ?
    Tipo, criar um botao(efetuar compra) em baixo de subtotall?
    Como poderia fazer isso ?

    Obrigado.

    • http://www.videoaulasbrasil.com.br David CHC

      @Giovanni, vc terá q guardar o pedido no banco de dados, ao finalizar a compra, criando uma tabela de pedido, onde guarda os dados do pedidos, como id do cliente, a data, preço total, e uma tabela pedido_produto, onde terá id do produto, id do pedido e a quantidade.

      Sobre sistema de pagamento, vc pode usar o pagseguro. Assim ao efetuar a compra vc envia essas informação ao pagseguro via formulário, com dados do pedido. Esse seria o jeito mais facil e pratico. Caso queira implementar boleto e cartões, o pagseguro será o jeito mais rápido e facil, caso contrario, vc teria q entrar em contato com banco, e claro ter cnpj e conta corrente pra ter o boleto. O cartão teria q entrar em contato com as operados, e seu codigo teria q ser aprovado, tendo muita burocracia.

  • matheus silva

    como faz para deixar quando abrir um arquivo em html ou php no notepad ++ ele ja colocar o corpo (semelhante ao dreamweaver

    • http://www.videoaulasbrasil.com.br David CHC

      @matheus silva, teoricamente vc poderia criar macro para isso, eu tentei usar mais não deu muito certo comigo. Caso queira testar outra IDE, eu indico o komodo edit, é gratuito e muito bom, atualmente estou utilizando ele, e não tenho o q reclamar.

  • http://www.descalvadonline.com Wagner Carvalho

    Ow, muito legal a video aula, parabens, mas gostaria de saber como eu faço pra enviar esse pedido do cerrinhos para um site e compras, como por exemplo oo pag seguro.
    Exemplo:
    A pessoa adicionou todos os itens e depois quer finalizar as compras.
    Uso o sistema pag seguro.
    Como essa lista de compras pode ser enviada ao sistema pag seguro.

    • http://www.videoaulasbrasil.com.br David CHC

      Vc precisa guardar os dados em uma tabela, na verdade serão duas tabelas:

      tabela pedidos
      id_pedido – chave primaria
      id_cliente – para saber qual cliente q pediu
      total – valor total
      criado – data e hora q pedido

      tabela item_pedido
      id_pedido – para saber qual o pedido q ele pertence
      id_produto – para saber qual o produto do pedido
      qtd – quantidade do produto

      Primeiro vc cadastra na tabela pedidos, e depois na tabela item_pedido, os pedidos em si, q estão guardados na $_SESSION['carrinho'].

      O Pagseguro existe o site da Visie, q disponibilizaram tutoriais, e classes para integrar o seu site com o pagseguro, nunca usei. mas parece muito bom, ai vc pode dá uma olhada.

      http://visie.com.br/pagseguro/php.php

  • http://www.setordigital.com.br Jonathan

    Excelente aula gostei muito e me deu uma nocao de $_SESSION que eu nao tinha. Mais eu achei algo estranho no seu codigo. No tempo do video de 27:01 você esta mostrando o carrinho nele tem dois valores no subtotal o de 49,90 e o de 160,00 você já colocou na calculadora pra voce ver qual é o resultado?.. Resultado: 209,90 o que esta acontecendo é que esta somente aparecendo 209,00 existe um erro ai mais não aparenta se nao perceber :P . será que existe a possibilidade de uma ajuda em cima disto.? Grato :) .

    • http://www.videoaulasbrasil.com.br David CHC

      @Jonathan, isso já foi consertado, basta conferir o código que disponibilizei, o link está na descrição

  • Otávio

    Nossa David, muito boa esta video-aula!, consegui extrair bastante coisa dela, principalmente como trabalhar com Arrays e sessões! Vlw mesmo!

  • Italo Izaac

    Olá, fiz o codigo tudo certo, mas existe um problema, toda vez que atualizo a pagina de carrinho ele adiciona mais um produto, e mutiplica o valor de 1 por 2.
    Existe alguma maneira de resolver isso?

    • http://www.videoaulasbrasil.com.br David CHC

      @Italo Izaac, isso é pq ação está voltada na URL, então quando vc atualizar, aparenta q vc está querendo adicionar outro produto, mas vc pode tirar essa opção de sempre está adicionando, tirando o else, e deixando:


      if(!isset($_SESSION['carrinho'][$id])){
      $_SESSION['carrinho'][$id] = 1;
      }

  • Italo Izaac

    Olha eu de novo, agora gostaria de sabe como eu faço para pegar todos os produtos que esta listado na pagina do carrinho, e manda para o banco de dados. tira condiçoes de me explicar?

    • http://www.videoaulasbrasil.com.br David CHC

      @Italo Izaac, vc terá duas tabelas, uma para pedidos e outra para os itens do pedidos, onde será gravado o id do produto, e a quantidade, e o id do pedidos. Vc vai cadastrar os dados do pedidos, como id do cliente, e status do pedidos, e depois recupera o id, com mysql_insert_id(), e faz o cadastro dos itens do pedidos, fazendo um loop do $_SESSION['carrinho'] resgatando id do produto e quantidade selecionada

  • http://www.gargem62.com.br Fernando Petry

    Maravilha hemm David, Parabéns pelas vídeos aulas, eu não entendo muito de array, mais com esta aula já melhorou bastante o meu entendimento, Muito Obrigado.

  • David Pereira dos Santos

    VALEU CHARÁ ESSA AULA DO CARRINHO DE COMPRAS, MUITO LEGAL MESMO! MAS COMO FARÍAMOS PARA SABER QUEM COMPROU ESTES PRODUTOS? DE QUE FORMA VAMOS PEGAR OS DADOS DESSE CLIENTE PARA MANDAR A COBRANÇA E ENTREGAR OS PRODUTOS NA CASA DELE?

    ABRAÇO, CONTINUE ASSIM, POIS JÁ APRENDI BASTANTE COM ESSAS AULAS.

  • Rodrigo cesar

    Ola Daivid , Estou com uma duvida , eu terminei um site onde usei o modelo deste carrinho de compras, onde o cara escolhe varios produtos e finaliza a compra . tudo funcionou blz . mais depois fiquei pensando , a session é criada no lado servidor certo ? . entao se duas pessoas tiverm conectadas no site ao mesmo tempo , não daria problema , pois eu teria 2 variaves de sessão chamadas de carrinho , ao mesmo tempo . desculpe se a duvida for meio boba . e parabems pelo seu trabalho . ;)

    • http://www.videoaulasbrasil.com.br David CHC

      @Rodrigo, ela tem uma identificação unica, logo isso não iria ocorrer.

  • Urbano

    David, achei sua explicação de sessao do carrinho de compras bem mais facil de ser compreendida em relação as que já tinha visto!! uma dúvida:
    o site é composto de: 1- cabecalho,2-index(onde vais as paginas) e 3-rodape.
    No index tem os include para o cabecalho, e o restantes.
    No cabecalho recebe(em uma tabela) a Qtd de itens e o valor Total. Minha dúvida e o seguinte, como fazer com que os dados no cabecalho seja atualizado na medida que for inserindo itens na cesta, eu falo, devido a pagina já ter sido carregado. porque para ser atualizado no cabecalho teria que dá um refresh na pagina!!
    Valeu!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, nesse caso só fazendo por ajax

  • Urbano

    usei esse comando: echo “”; a cada inserção, atualização no carrinho, até que deu certo!! mas ficou meio gambiarra!! e sempre fica dando uns clicks na pagina, rsrsr.
    Valeu!!

  • Urbano

    David!! uma dúvida, caso se souber! implementando o carrinho do pagseguro!!! como obter o retorno se foi efetuado com sucesso!! para poder dá baixa no estoque?

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, para implementar o pagseguro é simples, q nada é do q um formulário. E o retorno automatico, q indica no pagseguro quando vai retorna quando finalizar a compra, ele envia um metodo POST, com os dados vc enviou. Um link bem interessante sobre retorno automatico, é dgmike

      http://dgmike.com.br/2009/10/07/verifique-o-retorno-automatico-sempre/

      Tem bastante coisa falando sobre pagseguro.

  • Urbano

    David, programei que ao finalizar a compra, dp de o usario ter escolhidos os produtos, caso ele nao ter logado cair no formulario de cadastro de clientes. como faço para assim que ele criar o cadastro retornar a pagina de carrinho como os produtos uma vez por ele ja escolhido?
    Valeu!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, no caso os valores do carrinho, q será o ID e a quantidade estão na session, então pode ser recuperados a qualquer momentos, desde q o usuario não feche o navegador.

  • Urbano

    David, qual seria uma melhor opcao para o exemplo carrinho acrescentar junto ao produto uma opcao para o cliente escolher uma cor e um tamanho, por ex. o tamanho pode ser ja definido ex. p,m.g,gg. O problema seria nas cores. achei por bem criar uma tabela de cores. e no adm um menu com a opcao para ser cadastrado as cores, ex. azul, azul/branco(como pode ter mais de uma cor), e no cadastro de produtos buscar essas cores da tabela, dando um echo para o checkbox em cada cor da tabela. aí qd fosse cadastrar um produto marcaria qual cor no checkbox o produto teria. Agora pensando no lado cliente, junto a foto do produto pensei em buscar com um select(conf.o exemplo passado na video aula do combo) mas pensando bem, caso o cliente opte por 2 produto igual mas com cores diferentes, nesse caso o select nao serviria. Parece bem complicado…

  • Urbano

    Blz. vou da uma olhada nele!
    No caso eu preparei para usar junto com os dados do produto um select com as cores e outro select com o tamanho. Aao ser escolhido tanto a cor qt o tamanho, qd clicar em comprar, lá na pag. do carrinho recebo as variaveis cores e tam. A logica seria essa? no momento em q se verifica a condicao se foi add, e cria a sessao[carrinho][id] precisarei criar tb por ex. a sessao[cor][id] e a sessai[tam][id].
    precisarei tb da um foreach neles
    valeu!
    Valeu!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, vc poderá fazer assim mesmo:

      $_SESSION['cor'][id_do_produto] = id_da_cor;

      E na hora de selecionar pode fazer assim:

      foreach($_SESSION['carrinho'] as $id => $value){
      $cores = implode(‘,’, $_SESSION['cor'][$id]); // 1,2,3

      }

  • Urbano

    Blz. Valeu!!

  • Urbano

    David, queria que se pudesse dá uma olhada no codigo abaixo. tentei implementar o cadastro de cores e tam. por sessao mas nao consegui. implementei direto, qd clicar em comprar gravar no banco. ele faz uma condicao na primeira vez qd clicar em comprar busca no banco se a variavel cor e tam. existe, se nao existir implementa mais um.
    ateh q funcionou bem; mas percebi que tem um furo, por ex. se um outro dia o mesmo cliente com as mesmas variaveis(produto, cor e tam) clicar em comprar vai implementar mais um. Acho que seria melhor por sessao, mas nao consegui.
    Dá uma olhada no codigo, em q posso melhor.
    Agradeco muito
    valeu!!
    http://pastebin.com/DzfXB2zh

  • Urbano

    David, brigadão mesmo, vou implementá-lo. valeu!!

  • http://www.mandacahits.com/ Samuel Cedro

    Otima aula, David. Não sei como sabe de tudo isso. Tem como me dar uma dica de como fazer um sistema para pegar os dados do carrinho e colocar em um formulário de finalização de compra?

    • http://www.videoaulasbrasil.com.br David CHC

      @Samuel , tbm estou aprendendo como todo mundo. No caso vc quer colocar os valores em um formulário, e a pessoa envia um e-mail. Lembre-se, q os dados importantes estão no carrinho, como o ID do produto e a quantidade. Vc viu tbm q mostro como montar o carrinho. Vc vai fazer a mesma coisa como montei o carrinho. Lembre-se q session, a gente utiliza para que quanto formos para outras paginas os dados permanecem, então vc pode ir para outra paginas q o ID do produto e quantidade dele ainda continuarão na session.

  • urbano

    David, uma dúvida:
    dentro do foreach to querendo armazenar o id da cor: $id_cor = array_keys($_SESSION['cores'][$id]
    soh que vem com a palavra array;
    ele soh funciona com o implode?
    value

  • urbano

    David, use a propria variavel $cor mesmo nao precisei do array_keys.
    uma duvida, vamos dizer que no final de tudo quero salvar no banco essas informacoes, para cor(id-cor, id_prod, qtd) todas elas eu tenho posse devido ao uso da session[cores][id]. eu fui usando o insert na hora do foreach do carrinho, soh qe no banco ele sempre insere uma nova linha aumentada a qtd. queria q somente no final fosse salvo.
    valeu!!

    • http://www.videoaulasbrasil.com.br David CHC

      @urbano, veja a sintaxe q tinha coloca

      $_SESSION['cor'][id_produto][id_cor] = 1;

      Se tivessemos fazendo só assim:

      $_SESSION['cor'][id_produto] = id_cor;

      Teriamos apenas uma cor no carrinho.

      Vc pode apenas guardar os id com virgulas nas tabelas, tanto das cores quanto do tamanho.

  • Urbano

    David, é o seguinte: ao sair de uma pagina para entrar em outra sem fechar o browse, queria ou matar a session_id() ou mudar o valor. como faço, tentei usar session_regenerate_id(); mas dá um erro: Warning: session_regenerate_id() [function.session-regenerate-id]: C…
    Valeu!!. aliás, sem dá um session_destroy(), porque nao queria matar a sessao do cliente.
    valeu!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, vc iniciou a session antes?

      session_start();
      session_regenerate_id();

  • Urbano

    David blz funcionou. Ele soh funciona antes do header.
    Me tira uma duvida: Olha esse sql
    SELECT p . * , c . * , s . *
    FROM tb_produto p, tb_categoria c, tb_subcategoria s
    WHERE p.id_categoria = c.id_categoria
    AND p.id_subcategoria = s.id_subcategoria
    ORDER BY produto ASC

    Como faco para buscar também os produtos por ex., que não tiverem subcategoria, a subcategoria está com o valor zero?

    valeu!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, tente utilizar o Left Join:

      SELECT p . * , c . * , s . *
      FROM tb_produto p
      LEFT JOIN tb_categoria c ON p.id_categoria – c.id_categoria
      LEFT JOIN tbl_subctegoria s ON p.id_subcategoria = s.id_subcategoria
      ORDER BY produto ASC

  • urbano

    David, valeu!! funcionou, eu estava sem saber em qual lugar daria o left join.
    Vlw!!

  • Urbano

    David, me auxilia numa coisa: Em um projeto para se criar uma sala virtual de um colegio, qual seria a melhor opcao?

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, isso vai depender da necessidades do projeto. O q seria uma sala virtual? Vc pode criar algo, ou utilizar LMS, como o moodle, e-fronte, entre outros

  • Urbano

    É, pelo que estava lendo a respeito do moodle, e do projeto em si, se encaixaria mais com o moodle mesmo. Difícil de se encontrar material de estudo.

  • urbano

    David, preciso criar um orçamento, estava vendo, acho, que seria semelhante ao carrinho. tem uma questão: por ex. na pagina teria umas 4 abas(como se fosse um menu de paginas na horizontal) e em cada aba, teria algumas perguntas para ser respondida e em baixo um botao continuar, que iria para a proxima aba, -eles ficariam desabilitados enquanto nao estive ativo neles-, com mais perguntas e produtos a ser escolhido.
    esse modelo vi num site feito em asp. qual seria a forma mais parecida no php em fazer um processo semelhante a este?
    Valeu!

    • http://www.videoaulasbrasil.com.br David CHC

      @urbano, nesse caso não seria o php, ele serveria, junto com banco de dados, o cadastramento das perguntas e produtos, a dificuldade é o javascript, mas vc pode ser basear na minha video aula de sistema de abas com jQuery, pode ajudar

  • Urbano

    valeu!. tava dando uma pesquisada, seria semelhante ao cadastro de formulario por etapa. a etapa passaria as variaveis e submeteria como hidden ou session mesmo, para a proxima etapa, até a conclusao.
    valeu!!

  • Urbano

    David, pode aconceter de algum servidor não registrar, gravar sessions? constatei que na Localweb em um dominio específico nao está registrando, gravando as sessions, digo porque fiz um teste em outro servidor e funciona.
    valeu!

    • http://www.videoaulasbrasil.com.br David CHC

      @Urbano, pode ter problemas no configuração e não consegui gravar os arquivos da session

  • diogo

    Olá David,
    Meu carrinho esta tudo ok, porem quando tem sentavos na variavel $sub ele não soma e tambem quando chega nos 1000,00 ele volta para 100,00. Tem como você me ajudar. Obrigado

    • http://www.videoaulasbrasil.com.br David CHC

      @diogo, creio foi pq na eu somei o valor formatado (pq já tem um tempo essa aula, ai não me lembro direito, rs).

      Tente fazer assim:

      http://pastebin.com/0NGH1AKB

  • omor

    Olá David eu aqui de novo, poderia me dizer o que tá acontecendo que não está imprimindo o valor correto da compra?Eu coloquei assim, mas está dando erro:

  • urbano

    David, novamente tentando implementar o carrinho, com atributos cores e tamanho; uma vez criei tabela tb_cores com id e a cor, e a tb_tamanho com id e tamanho, e na tabela produto uma chave estrangeira com id_cor e tamanho no qual recebe os id separados com virgulas.
    minha dúvida é a seguinte, dá uma olhada no script abaixo, vê se eu consigo criar todas as possibilidades da pessoa escolher um produto com mais de uma cor. e conseguir listar as quantidades de produtos e os atributos escolhidos:
    http://pastebin.com/g0ZVBJYj

    valeu!

    • http://www.videoaulasbrasil.com.br David CHC

      @urbano uma maneira mais simples de definir a cor e tamanho, em vez de usar session usar tabelas para guardar

  • urbano

    David, realmente consegui resolver a questão dos atributos com tabela mesmo. soh uma coisa: como faço para o produto ir ao carrinho separa por ex. por tamanho? por ex. se tem um produto camisa com tam. p, m, g; qd escolher uma camisa p va para o carrinho, se escolher a camisa m, va para a proxima linha do carrinho.
    porque do jeito que tá tah indo apenas a camisa e somando as qtd. ao ser escolhido os atributos.
    valeu!!

    • http://www.videoaulasbrasil.com.br David CHC

      @urbano, mas usando uma tabela fica mais facil de fazer isso. Exemplo:


      tabela carrinhos
      idCarrinho
      produtos_id
      qtdCarrinho
      tamanhos_id
      cores_id
      session_id

      Aqui crie duas funções, uma para adicionar o produto na tabela, e outro para verifica se tem esse item na tabela:

      http://pastebin.com/97LisEgr

  • urbano

    Valeu! David, realmente usando tabela em vez de sessao carrinho ficou mais fácil. Resolvido.
    Grato!

  • http://davidchc.wordpress.com David CHC

    Vc vai fazer da mesma maneira como faz para mostrar os produtos no carrinho. E guardar essas informações em uma variavel

    $resultado = '';
    foreach($_SESSION['carrinho'] as $id =&gt; $qtd){
       $query = mysql_query(&quot;SELECT * FROM produtos WHERE id = '$id'&quot;);
       $row    = mysql_fetch_assoc($query);
    
       $resultado .= $row['produto']
    
    }
    

    Claro q vc vai colocar numa tabela, mas ideia seria basicamente essa

  • http://davidchc.wordpress.com David CHC

    No caso vc vai fazer a mesma coisas como faz para mostrar o carrinho, e como fiz no link. Os dados do ID e da quantidade estão na $_SESSION. Mesmo vc mudando de pagina, ele continua. O q vc vai fazer é percorre essa session com foreach, e depois pesquisa na tabela de produtos pelo ID do produtos. Com fiz no link q mostrei

  • Su

    boas, o tutorial está muito bom, ajudou-me muito mas encontrei alguns erros, do tipo:

    * Após adicionar um produto ao carrinho de compras se carregar F5 ele aumenta uma unidade ao último produto inserido.

    *Não esta a fazer o total bem (se tiver 8.50€ ele totaliza 8€) e tipo se tiver 301,00 + 1.350,00 ele totaliza 302.35€, porque está a somar 301€ com 1,35€, e se eu tirar os pontos (.) e deixar assim:

            $preco = number_format ($linha ['preco'], 2, ‘,’, ”);
            $sub   = number_format ($linha ['preco'] * $qtd, 2, ‘,’, ”);

             $total = number_format ($total,  2, ‘,’, ”);

    Tem como me ajudar a corrigir esses erros?

    Parabéns pelo tutorial.

    • http://davidchc.wordpress.com David CHC

      A primeira questão, a gente definiu isso na hora de adicionar o produto, e o ID existe na session, ele adicionar mais um, então basta remover esse parte sem problemas.

      Sobre a segundo questão, é pq estava somando para o total o valor formatado, por isso ocorre esse problema, basta fazer o total assim:

      $total = 0;
      foreach(….) {

      $total += $linha['preco']*$qtd;
      }

      echo number_format($total, 2, ‘,’, ‘.’);

  • http://davidchc.wordpress.com David CHC

    Sobre a primeira questão, vc vai remover a parte de adicionar: $_SESSION['carrinho'][$i] += 1;

    Sobre o segundo, coloca o codigo no http://www.pastebin.com ,e posta o link. Vc pode comprar o seu codigo com q disponibilizado na descrição da video aula.

  • http://davidchc.wordpress.com David CHC

    Eu vou respondendo aos poucos aqui nos comentários, pq tenho trabalhos para entregar, então vai ter q te paciência mesmo.

  • http://davidchc.wordpress.com David CHC

    No caso, como falei, era pra no total não somar o valor já formatado. Veja como ficaria :

    http://pastebin.com/4LS6Mx0H

    • Su-sms

      Muito obrigada, adorei mesmo o tutorial e a ajuda prestada foi 5*. queria pedir era um ajuda, na hora que mando a encomenda para o email- queria mandar a tabela (aquela que diz nome produto_ imagem _ preço_ sub total e depois a lista dos produtos e depois o preço total da encomenda) .

      Tenho a página finalizar_encomeda.php ( http://pastebin.com/rTrtpsQk ) onde mostra a encomenda e tem os dados do cliente e um form para observações e quando ele envia tem a página

      submeter_encomenda.php(http://pastebin.com/51Wcxped)

      Neste momento está a enviar para o email tudo correcto menos a tabela, e queria saber como faço para que depois da encomenda ser enviada para o admin ela desaparecer do carrinho de compras.

      Desculpe e muito obrigado

  • http://davidchc.wordpress.com David CHC

    Esse erro aparece quando tem um codigo HTML ou mesmo um espaço no html, antes da função do header.

    • Su-sms

      não consigo encontrar/ solucionar o erro, é possível ajudar-me sff?

  • http://davidchc.wordpress.com David CHC

    Na pagina submeter_encomenda.php pra precisa de ter as ações e adicionar, alterar ou excluir produto, apenas vai listar os produtos escolhidos e enviar por email

  • http://davidchc.wordpress.com David CHC

    A maioria das pessoas estão tendo dificuldade de enviar por email pq não não entenderam pq foi utilizado a session para colocar o ID e Qtd.

    A session dura até você fecha o navegador, então caso eu for para outra pagina o session existe com os valores que atribui. Então quais são as etapas:

    1 – Inicia session
    2 – Resgata os valores do formulário com os dados do Cliente, como nome, email, endereço, etc
    3 – Resgata os valores da session, e monta a lista de produtos e com seus atributos
    4 – Utiliza a função mail para enviar os dados por e-mail

    Vamos algumas perguntas :

    1 – Você está testando numa hospedagem ?
    2 – Sua hospedagem está habilitada a função mail ? (se for gratuita, a maioria é desabilitada. E tem hospedagem que so envia email autenticado, com a hostnet)

  • http://davidchc.wordpress.com David CHC

    Me envia um e-mail com mais detalhes : contato@davidchc.com.br

  • http://davidchc.wordpress.com David CHC

    Veja o exemplo q mostrei para vc, que tem a maneira de montar o carrinho

  • Urbano

    David, ao listar os dados da sessão, como faço para listar por ordem alfabetica dos produtos?
    Valeu

  • http://davidchc.wordpress.com David CHC

    Sim, é possível, vc terá q usar o javascript , usar o metodo blur. Exemplo usando o jQuery:

    http://pastebin.com/2x9RvkJP

  • Urbano

    David, resolveu meu problema!! Só aprendo com vc. já utilizei seu carrinho em alguns projetos meus. Valeu!!
    Precisei listar tb a qtd que fica na sesao carrnho junto com o nome do produto, dentro do laço do produto criei um laço da sessao carrinho comparando se o id do produto era igual ao id  id do carrinho para pegar a quantidade.
    Obrigadao!.

    • http://davidchc.wordpress.com David CHC

      Vc poderia utilizar o proprio ID do produto para isso, sem precisa criar um novo loop

      $id = $row['id'];
      $qtd = $_SESSION['carrinho'][$id];

  • Urbano

    isso mesmo!! value

  • Felipe

    Parabens pelo post muito show , so nao se enquadra no q eu preciso que pena e nem sei adptar isso para minha necessidade, enfim mais show de bola parabens!!!

  • http://davidchc.wordpress.com David CHC

    Evandro, os dados do carrinho pode ser recuperado em qualquer pagina, pq estão na session, então iniciar session_start().

    Verifique tbm, vc tá colocando require dentro de um loop, vc tem q colocar ele fora.

    Outro item, é a estruturação da tabela, veja q vc abriu uma td, e depois tentou fechar tr, dá uma olhada nisso, para evitar deformidade no seu layout

  • Marcio Satin

    David, ótimo tutorial.
    Eu estou precisando adicionar  no carrinho o mesmo id, tipo produto 1 com a cor verde e depois adicionar o produto 1 com a cor azul e ele sobrepoe alterando a quantidade.
    Você tem alguma ideia de como posso resolver isso?

    • http://davidchc.wordpress.com David CHC

      Marcio, da maneira q fiz vc não vai consegui. Uma maneira mais facil, é vc usar o banco de dados para guardar o carrinho, veja esse exemplo, nesse caso tinha colocado o tamanho, mas pode ser colocado por Cor

      http://pastebin.com/PZu2mXCM


Hospedado por Hostnet - Hospedagem de sites

VAB - Todos os direitos reservados - 2008 / 2012

Developed by: MX Web Studio

Mais em PHP (215 of 230 articles)