nekiter Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 Sou novo aqui neste fórum e não achei uma área para duvidas então se estiver em um local erado gostaria que o tópico fosse movido.Obrigado desde já.Bom eu estou fazendo uma pizzaria online, eu estou tentando fazer a loja, ela funciona até que bem... o único problema é:Eu não faço ideia de como salvar o pedido no banco de dados/finalizar pedido eu gostaria de saber se alguém pode me dar uma força.Link do carrinho + banco de dados:http://www.4shared.com/rar/dTAZDDYb/loja.htmlObrigado novamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 o teu carrinho vai trabalha com uma variavel array ou uma SESSION para salvar no banco você vai extrair cada dados do array e da o insert.caso tenha alguma duvida de como fazer poste o código do seu crrinho aqui para gente ver e detalhe a sua duvida.. assim fica mais facil ir direto ao ponto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nekiter Postado Maio 25, 2012 Autor Denunciar Share Postado Maio 25, 2012 Eu já tinha imaginado isso... porem tenta acompanhar meu raciocínio...Um pedido tem mais de um item certo? como vou fazer para inserir todos os itens no pedido(isso estou dizendo no banco de dados)E você pediu os codigos:Data baseCREATE TABLE IF NOT EXISTS `produtos` ( `id` int(10) NOT NULL DEFAULT '0', `nome` varchar(50) DEFAULT NULL, `preço` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; conexão.php: <?php mysql_connect("localhost", "root", ""); mysql_select_db("alunos_carrinho"); ?> index.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=iso-8859-1" /> <title>Video Aula sobre Carrinho de Compras</title> </head> <body> <?php require("conexao.php"); $sql = "SELECT * FROM produtos"; $qr = mysql_query($sql) or die(mysql_error()); while($ln = mysql_fetch_assoc($qr)){ echo '<h2>'.$ln['nome'].'</h2> <br />'; echo 'Preço : R$ '.number_format($ln['preço'], 2, ',', '.').'<br />'; echo '<a href="carrinho.php?acao=add&id='.$ln['id'].'">Comprar</a>'; echo '<br /><hr />'; } ?> </body> </html> carrinho.php: <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; }else{ $_SESSION['carrinho'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } //ALTERAR QUANTIDADE if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } } ?> <!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=iso-8859-1" /> <title>Video Aula sobre Carrinho de Compras</title> </head> <body> <table> <caption>Carrinho de Compras</caption> <thead> <tr> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="89">Preço</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> </thead> <form action="carrinho.php?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td> <tr> <td colspan="5"><a href="index.php">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require("conexao.php"); $total = 0; foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id= '$id'"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $nome = $ln['nome']; $preço = number_format($ln['preço'], 2, ',', '.'); $sub = number_format($ln['preço'] * $qtd, 2, ',', '.'); $total += $ln['preço'] * $qtd; echo '<tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td>R$ '.$preço.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } $_SESSION['total'] = $total; ?> </tbody> </form> </table> <form name="finalisa" action="finalisa.php?acao=''" method="post"> <input type="submit" value="Finalizar compra" /> </form> </body> </html> finalisa.php: <?php session_start(); //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } ?> <h2>Finalizar pedido</h2> <?php echo"Itens comprados"; ?> <table> <tr> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="89">Preço</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require("conexao.php"); $total = 0; foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id= '$id'"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $nome = $ln['nome']; $preço = number_format($ln['preço'], 2, ',', '.'); $sub = number_format($ln['preço'] * $qtd, 2, ',', '.'); $total += $ln['preço'] * $qtd; echo '<tr> <td>'.$nome.'</td> <td>'.$qtd.'</td> <td>R$ '.$preço.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?></table> <form action=""> Comentarios sobre a compra:<br /> <textarea name="Comentario" rows="10" cols="40" size="60" /> </textarea><br> <input type="submit" value="Prossegir" /> </form> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 (editado) Pelo o que eu observei em teu código ele já está fazendo isso.//adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; }else{ $_SESSION['carrinho'][$id] += 1; } } vamos interpreta esta parte do código. se a variavel url acao for add faça: variavel id recebe o valor de tipo inteiro da variavel url id se não existir a sessao de carrinho de id (id provavelmente é o id do produto.) faça : sessao carrinho de id recebe 1 se não sessao carrinho de id recebe + 1 (no caso uma somatoria para aumenta a quantidade de produtos no carrinho) certo so para voce entender se eu adicionar um produto ele vai pega o ID e vai verificar na session carrinho dakele id se já existe se existir ele vai adicionar 1 sendo assim produto tal tem tantas quantidades sendo assim o seu carrinho muda a cada produto... para uma exemplificação melhor. vamos supor que eu adicionei um livro de php no meu carrinho e ele é do id - 785 $_SESSION['carrinho'][785] = 1; a eu quero agora colocar um livro de AJAX - 678 $_SESSION['carrinho'][678] = 1; agora vou adicionar mais um livro de php para um colega que solictou um favor. $_SESSION['carrinho'][785] += 1;ou seja o carrinho de id - 785 tem o valor 2 INT sendo assim já sei que são 2 unidades de produtos..não sei se me expressei bem, mas seria isto. Editado Maio 25, 2012 por JaguA Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nekiter Postado Maio 25, 2012 Autor Denunciar Share Postado Maio 25, 2012 Essa parte eu compreendo o que eu estou com duvida é como inserir mais de um item nos pedidos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 O que você quer dizer com mais de um item no pedido?Pois eu expliquei como adiciona + de 1 produto e como adicionar + quantidades deste produtosendo assim seria o item no pedido se eu tenho o pedido de um mouse e quero pedir + 5 itens seria + produtos diferente, o que volta ao que eu expliquei no post anterior... sinceramente não to entendedo o que você deseja, se puder ser mais especifico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nekiter Postado Maio 25, 2012 Autor Denunciar Share Postado Maio 25, 2012 Por exemplo eu tenho uma coluna item na tabela pedido certo?A compra pode ter mais de um item... logo eu teria q ter varias colunas ou o modo que não sei fazereu gostaria de saber os modos possiveis Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 (editado) Cara o que veio na minha mente aqui agora e não estou 100% do que vou afirmar seria um loopou sejavocê pega todos os itens cria um loop para cadastrar item por itemsendo assim você vai terIdPedidoItemQuantidadeValor do itemassim voc registra no banco da seguinte forma ao finalizar a compra ele vai gerar um numero de pedido que vai ser igual para todos os itens assim voc cria o loop de insert com esse mesmo numero para todos os produto alternando o valro e quantidade e cod de produto .. o Id que ficaria no banco pode-se tratar como o N. da venda e tals é uma ideia.. não estou 100% certo distou, ao chegar em casa, se eu lembrar (rsrs) vou da uma olhada no que eu tenho e posto aqui novamente...a sim no caso de ver a ultima compra feita é so fzr um select pelo n de pedido assim retornando todos os itens do pedido e usar o SUM para somar e mostra com o valor total do pedido inclusive ^^.olha eu dei uma pesquisada aqui e seria desta forma mesmo... é so da um loop no array carrinho pegando os produtos e cadastrando um a um no banco tendo um numero fixo no caso o numero de compra/pedido para poder fazer um select deles posteriormente. Editado Maio 25, 2012 por JaguA Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nekiter Postado Maio 25, 2012 Autor Denunciar Share Postado Maio 25, 2012 Muito obrigado... espero ansiosamente...Eu já havia pensando em fazer mais ou menos isso porem não sei como por em pratica, acompanhe meu raciocínio: -Eu teria 4 tabela(cliente, produtos, venda, produtos_venda)-Teria 3 chaves estrangeiras uma do cliente de ligando a venda(id_cliente) uma da venda se ligando com produtos venda(não sei) uma dos produtos venda se ligando ao produtos. A partir deste momento não sei o que fazer.Mas vou esperar sua possível resposta =D obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 hasuahsuaolha eu não sei exatamente como é sua loja muito menos sua ideia... mas partindo de algo logico e do que você já citou podes fazer o segiunte.TABELA -> Produtos ( registro de todos os produtos )TABELA -> VendasTABELA-> ClienteBem ao finalizar uma compra voce vai gerar o numero da compra ...apos isso fara o insert na tabela vendas do carrinho vamos supor que voce tenha no carrinho 3 camisas (2585)| 2 shorts (8784) | 1 oculos (1751) -> N de compra 00052na sua tabela ficaria assim VENDASID | Id_Produto | Quantidade | Valor | Nu_Compra | ID_Cliente_______________________________________________________01 | 2585 | 000003 | 28.55 | 00052 | 1502 | 8784 | 000002 | 45.77 | 00052 | 1503 | 2585 | 000001 | 77.15 | 00052 | 15ela ficaria assim agora seu eu fizer a compra de 1 camisa(7487) e 1 bone(8935) ficaria assim.ID | Id_Produto | Quantidade | Valor | Nu_Compra | ID_Cliente_______________________________________________________01 | 2585 | 000003 | 28.55 | 00052 | 1502 | 8784 | 000002 | 45.77 | 00052 | 1503 | 2585 | 000001 | 77.15 | 00052 | 1504 | 7487 | 000001 | 25.00 | 00097 | 1805 | 8935 | 000001 | 13.47 | 00097 | 18Conseguio entender?agora os campos que você realmente vai usar é com você para atender a suas nescessidades. isto é so um exemplo pratico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 chiufual Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 here Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 nekiter Postado Maio 25, 2012 Autor Denunciar Share Postado Maio 25, 2012 Desculpa mas eu não intendi eu geraria um ID para cada produto do carrinho? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 o ID é auto_increment e no caso de ter que selecionar ou deletar algo ele ajuda bastante.o que você precisa entender como a tabela vai funcionar para fazer o cadastro e como você deve fazer o select para selecionar o carirnho deste cliente e tudo mais... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
nekiter
Sou novo aqui neste fórum e não achei uma área para duvidas então se estiver em um local erado gostaria que o tópico fosse movido.
Obrigado desde já.
Bom eu estou fazendo uma pizzaria online, eu estou tentando fazer a loja, ela funciona até que bem... o único problema é:
Eu não faço ideia de como salvar o pedido no banco de dados/finalizar pedido eu gostaria de saber se alguém pode me dar uma força.
Link do carrinho + banco de dados:
http://www.4shared.com/rar/dTAZDDYb/loja.html
Obrigado novamente.
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.