Ir para conteúdo
Fórum Script Brasil
  • 0

Carrinho De Compras


RC@

Pergunta

Bom pessoal, é o seguinte.. eu tenho um sistema de carrinho de compras que usa SESSION... bem, ele estah funcionando corretamente, mas meu problema é o seguinte:

A query de seleção para inserção dos produtos no carrinho é a seguinte:

select codigo from $tabela where codigo = $id_prod

Na qual a variavel $tabela, indica a tabela do meu BD... essa variavel é enviada no link do botao "comprar"... tudo certo ateh aqui..

Mas por exemplo, eu tenho a tabela1 e a tabela2, onde estao armazenados diferentes tipos de produtos... (divididos por categorias maiores..)...

Acontece q se por exemplo, em uma primera vez eu adiciono um item da tabela1, volto as compras e logo em seguida adiciono um item da tabela2, o item da tabela1 q estava no carrinho desaparece (logico, porque mudou a variavel $tabela)...

O q eu gostaria de saber é como fazer para q esse item não se "perca"... ou seja.. seja ainda exibido no carrinho, mesmo se eu adicionar um item da tabela2..

Tipo, tem algum jeito de "guardar" as informações em alguma variavel ou coisa do tipo?? porque eu pensei em colocar os dados do item q vai pro carrinho em uma tabela tb no bd.. mas como é session e varios usuarios podem estar comprando ao mesmo tempo.. eu não sei se isso funciona...

alguém pode me dar uma luz??!!.. como eu posso resolver isso??

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tá usando sessions? Já tentou setar uma variável ???


sessao.php

<html>
<?php
  session_start();

  $_SESSION['count'] = 1;

  $_SESSION['alex[0]'] = "talegaaaaaaau";
  $index =  $_SESSION['count'];
  $_SESSION['alex['.$index.']'] = " dois L's no finau";

   echo "Miauuuuuuuu: $_SESSION[alex] ".$_SESSION['alex[1]'];
?>
<br>
<a href='sessao2.php'>Sessao dois</a>
</html>


sesao2.php
<?php
 session_start();
 echo "Viu so? $_SESSION[alex]";
?>

Você já deve estar familiarizado com sessions . Se não , crie os dois arquivos e faça o teste. Entendeu o que eu quiz dizer? Quando você guardar o produto no banco de dados sete uma variável session e poderá usá-las em outra página.

Há outras soluções possíveis.

Abração cara, qualquer coisa posta aí!

Link para o comentário
Compartilhar em outros sites

  • 0

HUmm.. eu tentei fazer isso ai mas não deu muito certo (talvez porque eu não tenha feito do jeito certo mesmo)... mas seguinte.. eu tava pensando em fazer assim:

quando a sessao se iniciar... o script cria uma tabela no banco de dados.. e vai colocando os itens.. ai toda vez q for mostrar o carrinho, ele pega os itens dessa tabela.. e quando a sessao for finalizada, ele destroi a tabela no bd.. seria uma boa saida?!?!? (ah.. claro.. cara hora ele cria uma tabela diferente.. tipo, coloca o nome da tabela um numero e coloca um incremento)...

Bem.. se essa ideia não for muito boa.. serah q alguém poderia me ajudar com mais detalhes? tipo.. aqui vai o script do carrinho:

Carrinho.php

<?php
include("../Connections/conexao.php");
include ("TMySQL.php");
include ("TCarrinho.php");
session_start();

//Verificando se a variavel de sessão foi criada
if (!session_is_registered("MeuCarrinho")){
	session_register("MeuCarrinho");
	$MeuCarrinho = new TCarrinho();
}
$MySQL = new TMySQL();
$MySQL->connect($hostname_conexao, $database_conexao, $username_conexao, $password_conexao);

if (!empty($op)){
	switch ($op) {
	case "adicionar":
        if (!empty($id_prod)) {	
  	$Query = "select codigo from $tabela where codigo = $id_prod";
  	$R_Query = $MySQL->query($Query);
  	if (mysql_num_rows($R_Query)>0){
    $MeuCarrinho->AdicionarItem($id_prod,1);
  	}
  }
        break;
    case "excluir":
        $MeuCarrinho->RemoverItem($id_prod);
        break;
    case "atualizar":
  $MeuCarrinho->AtualizarCarrinho($HTTP_POST_VARS);
  break;
	case "finalizar":
  if ($MeuCarrinho->QuantosItens()>0) {
  	header("Location:Finalizar.php");
  }
	break;
	case "limpar":
	$MeuCarrinho->ExcluirTodosItens($id_prod);
	break;
	}
}

$QuerySQL = "select codigo, produto, preço from $tabela ". $MeuCarrinho->QuerySQL_ObtemListaDeItens();
echo $QuerySQL;
$Resultado = $MySQL->query($QuerySQL);
?>
... (to colocando só o php porque é o q interessa)

<? echo "<form method=\"POST\" action=\"carrinho.php?op=atualizar&tabela=$tabela\">";
           $preco_total = 0.00;
while(list($codigo, $produto, $preço) = mysql_fetch_row($Resultado)) {
	//Computando preço total
	$preco_total = $preco_total + $MeuCarrinho->ObtemSubTotalDeUmItem($codigo,$preço);
	echo "
<tr BGCOLOR=#FFFFCC>
<td><center><font size=2 color='#000000' face=Verdana><strong>". $produto ."</strong></font></center></td>

<td>
<center><input type=TEXT name=". $codigo ." size=2 value=". $MeuCarrinho->ObtemQuantidadeItem($codigo) ."></center>
</td>

<td>
<center><b><font color=\"#000000\">R$ ". number_format($preço,2,',','') ."</font></b></center>
</td>

<td>
<center><b><font color=\"#000000\">R$ ". $MeuCarrinho->ObtemSubTotalDeUmItem($codigo,$preço) ."</font></b></center>
</td>

<td><center><b><font face=Tahoma><font size=-1><a href=carrinho.php?op=excluir&id_prod=". $codigo ."&tabela=$tabela>Excluir</a></font></font></b></center></td>
</tr>
	";
}
?>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...