666999 0 Denunciar post Postado Maio 8, 2010 Ola pessoal estou quase finalizando meu projeto e estou com uma duvida cruel :huh: tipo tenho um carrinho com session ============================================== <?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{ } } //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"> <table> <caption>Carrinho de Compra</caption> <thead> <tr> <th width="144">Produto</th> <th width="79">Quantidade</th> <th width="64">Remover</th> </tr> </thead> <form action="?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input name='Voltar' type='button' class="botao" onclick='javascript:history.back();self.location.reload();' value='Voltar' > <INPUT type="button" value="Finalizar Pedido" onClick="window.open('finalizar.php')"> <input type="submit" value="Atualizar Carrinho" /> </td> <tr> <td colspan="5"></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require("Config/config.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']; echo '<tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> </tr>'; } ?> </tbody> </form> </table> </body> </html> ========================================== como eu faço para puchar a session carrinho em uma outra pagina e gravar os itens do carrinho em um bd mysql ? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 8, 2010 Da mesma forma que você fez aqui, mas agora use insert foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id= '$id'"; $qr = mysql_query($sql) or die(mysql_error()); e só percorrer o o array da session exemplo: //percorre array SESSION do carrinho foreach($_SESSION['carrinho'] as $id => $qtd){ //sql inserir item_pedido $sqlItemPedido = "INSERT item_pedido (id_pedido, id_produto, quantidade) VALUES ('$ultimo_id_inserido', '$id', '$qtd')"; //executa o SQL $qrItemPedido = mysql_query($sqlItemPedido); } Espero que te ajude! Compartilhar este post Link para o post Compartilhar em outros sites
666999 0 Denunciar post Postado Maio 9, 2010 tipo consegui algo olha a maneira que fiz <?php include "config.php"; session_start(); foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id= '$id'"; $sqlItemPedido = "INSERT cliente_produto_quantidade (idproduto,qtd) VALUES ( '$id','$qtd')"; //executa o SQL $qrItemPedido = mysql_query($sqlItemPedido); } ?> esta minha tabela mysql CREATE TABLE IF NOT EXISTS `cliente_produto_quantidade` ( `idproduto` int(11) NOT NULL, `qtd` int(11) NOT NULL, `nomeproduto` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; mais tipo cada id e produto ele cria uma tabela enorme olha 1 pedido com 3 produto no carrinho INSERT INTO `cliente_produto_quantidade` (`idproduto`, `qtd`, `nomeproduto`) VALUES (44, 1, produto1), (46, 1, produto2), (59, 1, produto3); postei uma foto para entender ... tem como fazer esses ids e quantidade ficar tudo em uma tabela algo como exemplo idproduto qtd nomeproduto 44,46,59 1,1,1 produto1,produto2,produto3 dessa forma ou alguma forma melhor de gravar no bd :huh: Compartilhar este post Link para o post Compartilhar em outros sites
666999 0 Denunciar post Postado Maio 9, 2010 deixa queto <_< VLW Resolvido http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Maio 9, 2010 666999, Algumas considerações sobre seu projeto: Creio que você terá varios clientes e varios carrinhos, assim como varias compras, ok? Uma boa maneira de guardar os dados do carrinho no banco de dados é identificando o cliente, os produtos e a quantidade. Vejamos, são varios carrinhos; para cada carrinho há um cliente (uma sessão) e n produtos. PEDIDO ID CLIENTE SESSAOID STATUS ITEM PEDIDO ID PRODUTO QUANTIDADE É redundancia registrar o nome do produto, tanto na sessão como na tabela cliente_produto_quantidade. Esta informação está disponível na tabela de produto. O nome cliente_produto_quantidade não é um bom nome. Poderia ser apenas cliente_produto, mas ainda assim não seria bom o suficiente. Para o seu projeto, como está, carrinho_produto ou pedido_produto estaria mais de acordo. Compartilhar este post Link para o post Compartilhar em outros sites
666999 0 Denunciar post Postado Maio 9, 2010 666999, Algumas considerações sobre seu projeto: Creio que você terá varios clientes e varios carrinhos, assim como varias compras, ok? Uma boa maneira de guardar os dados do carrinho no banco de dados é identificando o cliente, os produtos e a quantidade. Vejamos, são varios carrinhos; para cada carrinho há um cliente (uma sessão) e n produtos. PEDIDO ID CLIENTE SESSAOID STATUS ITEM PEDIDO ID PRODUTO QUANTIDADE É redundancia registrar o nome do produto, tanto na sessão como na tabela cliente_produto_quantidade. Esta informação está disponível na tabela de produto. O nome cliente_produto_quantidade não é um bom nome. Poderia ser apenas cliente_produto, mas ainda assim não seria bom o suficiente. Para o seu projeto, como está, carrinho_produto ou pedido_produto estaria mais de acordo. vou ter de fazer algumas alteração http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif o nome cliente_produto_quantidade era um teste o nome vai ser carrinho e sobre o idproduto vou mudar quero tambem colocar uma tabela que grava a hora que o cliente fez pedido Compartilhar este post Link para o post Compartilhar em outros sites