Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rickytuga

Pegar conteudo de 2 sessions

Recommended Posts

como posso fazer para criar algo tipo... que pegue a sessao aberta no carrinho e a sessao aberta no login do usuario (que sao 2 db diferentes) e mostre uma nova pagina com todos dados no carrinho e infos do usuario para em seguida enviar por email?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso está mais pra questão de lógica do que php.

 

qual a sua dificuldade no uso dos recursos do php ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso está mais pra questão de lógica do que php.

 

qual a sua dificuldade no uso dos recursos do php ?

a dificuldade esta em saber como fazer isso de enviar o form de 2 sessoes diferentes :unsure:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você diz sessão está se referindo às variáveis de sessão do PHP ?

 

$_SESSION

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim essa mesmo... existe uma session pros dados do usuario no sistema de login e outra pro carrinho de compras, com os produtos adicionados pelo usuario nessa session. o que pretendia era associar as 2 sessions de forma que quando o usuario fizesse o login, o script reconhecesse que as compras no carrinho lhe pertencem e dessa forma criasse entao a pagina onde o usuario pode confirmar ou alterar os dados e produtos e em seguida clicar em ENVIAR e o script mandar um mail para o dono da loja e outro pro usuario a avisar que a encomenda ja esta a caminho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a dificuldade? Já fez alguma coisa? O que tem pronto? Deu algum erro?

 

Não consegui entender ainda o que você quer... Daí não posso te ajudar... Tente ser mais específico na sua dúvida.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou a um tempão a fazer este carrinho e não consigo finalizar as compras. Já consultei um monte de tuturials e videoaulas, mas nada me fez conseguir finalizar o meu e visto que no site existem varios carrinhos de compras e nenhum está completo e funcional a 100% decidi colocar o meu codigo aqui para que todos possam partilhar e tentar completar de um vez por todas para que este site tenha um codigo 100% funcional de carrinho de compras.

 

é o seguinte, para este carrinho eu criei 2 sistemas, 1 de login com registo de usuario e outro com o carrinho de compras.

 

As DB utilizadas sao (na pasta Membros):

 

CREATE TABLE `membros`.`membros` (

`id` INT( 4 ) NOT NULL ,

`id_membro` INT NOT NULL ,

`uid` VARCHAR( 50 ) NOT NULL ,

`nome` VARCHAR( 50 ) NOT NULL ,

`username` VARCHAR( 25 ) NOT NULL ,

`password` VARCHAR( 25 ) NOT NULL ,

`confirmacaopassword` VARCHAR( 25 ) NOT NULL ,

`morada` VARCHAR( 500 ) NOT NULL ,

`cpostal` VARCHAR( 50 ) NOT NULL ,

`localidade` VARCHAR( 50 ) NOT NULL ,

`indicacoes` VARCHAR( 500 ) NOT NULL ,

`telefone` VARCHAR( 25 ) NOT NULL ,

`telemovel` VARCHAR( 25 ) NOT NULL ,

`email` VARCHAR( 100 ) NOT NULL ,

`contribuinte` VARCHAR( 25 ) NOT NULL ,

`horario` VARCHAR( 100 ) NOT NULL ,

`pagamento` VARCHAR( 100 ) NOT NULL ,

`data_ts` VARCHAR( 25 ) NOT NULL ,

`activo` BOOL NOT NULL DEFAULT '0',

PRIMARY KEY ( `id_membro` )

) ENGINE = MYISAM

 

 

(Na pasta Produtos):

 

CREATE TABLE produtos (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

nome VARCHAR(130) NOT NULL,

descricao VARCHAR(1000) NOT NULL,

extras VARCHAR(500) NOT NULL,

stock VARCHAR(10) NOT NULL,

img VARCHAR(36) NOT NULL,

preco FLOAT NOT NULL

);

 

INSERT INTO produtos (nome, img, preco) VALUES ("Notebook AMD Turion", "img_0001.jpg", 2899.0);

 

CREATE TABLE carrinho (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

cod INT NOT NULL,

quant INT NOT NULL,

sessao VARCHAR(64) NOT NULL,

INDEX sessao (sessao)

);

 

 

Os ficheiros utilizados sao (Na pasta Membros):

 

activar.php

<?
// Liga-se à Base de Dados
include_once('ligacaoBD.php');

$id = $_GET['id'];
$emailMd5 = $_GET['email'];
$uidMd5 = $_GET['uid'];
$dataMd5 = $_GET['key'];

//Procura os resultados na base de dados
$sql = "select * from membros where id_membro = '$id'";
$sql = mysql_query( $sql );
$rs = mysql_fetch_array( $sql );

// Compara os dados da base de dados, com os dados vindos via url
$valido = true;

if( $emailMd5 !== md5( $rs['email'] ) )
	$valido = false;

if( $uidMd5 !== md5( $rs['uid'] ) )
	$valido = false;

if( $dataMd5 !== md5( $rs['data_ts'] ) )
	$valido = false;


// Os dados estão corretos, hora de ativar o cadastro
if( $valido === true ) {
	$sql = "update membros set ativo='1' where id_membro='$id'";
	mysql_query( $sql );
	echo "<br><center><font size=4 color=red><b>Registo de cliente activado com sucesso!</b></font><br><br>"; header( 'refresh:3; url=index.php' ); 

} else {

	echo "<br><center><font size=4 color=red>Informações inválidas</b></font><br><br>"; header( 'refresh:3; url=index.php' ); 
}
?>

 

index.php

<form name="form1" method="post" action="verifica.php">
<center>
<br>
<table width="400" border="0" cellpadding="5" cellspacing="1" bgcolor="#f3f3f3">
<tr>
<td colspan="3" align="center">
<strong>Área de Clientes</strong>
<br>
<br>
Username:
<br>
<input name="myusername" type="text" id="myusername" style="width:300px">
<br>
Password:
<br>
<input name="mypassword" type="password" id="mypassword" style="width:300px">
<br>
<input type="submit" name="Submit" value="ENTRAR" style="width:300px">
<br>
<br>
<font size=2><a href="registar.php">Registar Novo Cliente</a></font>
<br>
<br>
</td>
</tr>
</table>
</form>

 

ligacaoBD.php

<?
$host="localhost"; // Servidor
$username=""; // Username
$password=""; // Password
$db_name="membros"; // Base Dados
$tbl_name="membros"; // Tabela

// Conecta ao MySQL
if(!$con = mysql_connect($host, $username, $password)){
echo 'Erro na ligação à base de dados';
exit();
}

// Seleciona o banco de dados
if(!mysql_select_db($db_name, $con)){
echo 'Erro ao selecionar a base de dados';
exit();
}
?>

 

logout.php

<?
session_start();
session_destroy();
?>

 

registar.php

<?
// Liga-se à Base de Dados
include_once('ligacaoBD.php');

if( isset( $_POST['enviar'] ) ) {

$uid = uniqid( rand( ), true );
$data_ts = time( );
$nome = $_POST['nome'];
$username = $_POST['username'];
$password = md5( $_POST['password'] );
$confirmacaopassword = md5( $_POST['confirmacaopassword'] );
$morada = ( $_POST['morada'] );
$cpostal = ( $_POST['cpostal'] );
$localidade = ( $_POST['localidade'] );
$indicacoes = ( $_POST['indicacoes'] );
$telefone = ( $_POST['telefone'] );
$telemovel = ( $_POST['telemovel'] );
$email = ( $_POST['email'] );
$contribuinte = ( $_POST['contribuinte'] );
$horario = ( $_POST['horario'] );
$pagamento = ( $_POST['pagamento'] );

$activo = 0;

$sql = "insert into membros (
uid, 
data_ts, 
id_membro, 
nome, 
username, 
password, 
confirmacaopassword, 
morada, 
cpostal, 
localidade, 
indicacoes, 
telefone, 
telemovel, 
email, 
contribuinte, 
horario, 
pagamento, 
activo 
)";

$sql .= "values (
'$uid',
'$data_ts',
'', 
'$nome',
'$username',
'$password',
'$confirmacaopassword',
'$morada',
'$cpostal',
'$localidade',
'$indicacoes',
'$telefone',
'$telemovel',
'$email',
'$contribuinte',
'$horario',
'$pagamento',
'$activo'
)";

if( ! mysql_query( $sql )) {
echo "Erro! - Houve um erro ao registar o cliente. ".mysql_error( ); 

// Se o registo foi inserido com sucesso, envia o email.

}else{ 

$id = mysql_insert_id( $con );

// Cria as variaveis para validar o email.

$url =
sprintf( 'id=%s&email=%s&uid=%s&key=%s',$id, md5($email), md5($uid),md5($data_ts));

$mensagem = 'Para confirmar o seu registo, clique no link abaixo:'."\n";
$mensagem .= sprintf('http://www.rpublicidade.com/Membros/activar.php?%s',$url);

// envia o email
mail($email, 'Confirme o seu Registo de Cliente!', $mensagem );

echo "<br><center><font size=4 color=red><b>Cliente registado com sucesso. Obrigado!</b></font><br><br>"; header( 'refresh:3; url=index.php' ); 
}}
?>

<form method="POST">

<center>
Nome:
<br>
<input type="text" name="nome" style="width:300px">
<br>
Username:
<br>
<input type="text" name="username" style="width:300px">
<br>
Password:
<br>
<input type="password" name="password" style="width:300px">
<br>
Confirme a Password:
<br>
<input type="password" name="confirmacaopassword" style="width:300px">
<br>
Morada:
<br>
<input type="text" name="morada" style="width:300px">
<br>
C.Postal:
<br>
<input type="text" name="cpostal" style="width:300px">
<br>
Localidade:
<br>
<input type="text" name="localidade" style="width:300px">
<br>
Indicações Extra:
<br>
<input type="text" name="indicacoes" style="width:300px">
<br>
Telefone:
<br>
<input type="text" name="telefone" style="width:300px">
<br>
Telemóvel:
<br>
<input type="text" name="telemovel" style="width:300px">
<br>
Email:
<br>
<input type="text" name="email" style="width:300px">
<br>
Nº Contribuinte:
<br>
<input type="text" name="contribuinte" style="width:300px">
<br>
<br>
Horário para Entrega:
<br>
<SELECT NAME="horario" style="width:300px">
<OPTION VALUE="Dias de Semana durante a manhã">Dias de Semana durante a manhã
<OPTION VALUE="Dias de Semana durante a tarde">Dias de Semana durante a tarde
<OPTION VALUE="Fins de Semana durante a manhã">Fins de Semana durante a manhã
<OPTION VALUE="Fins de Semana durante a tarde">Fins de Semana durante a tarde
<OPTION VALUE="É Indiferente...">É Indiferente...
</SELECT>
<br>
<br>
Tipo de Pagamento:
<br>
<SELECT NAME="pagamento" style="width:300px">
<OPTION VALUE="Contra Reembolso">Contra Reembolso a Dinheiro
<OPTION VALUE="Transferência Bancária">Transferência Bancária
</SELECT>
<br>
<br>
<input type="submit" name="enviar" value="Efectuar Registo">

</form>

 

successo.php

<?
session_start();
if(!session_is_registered(myusername)){
header("location:login.php");
}
?>

<html>
<body>
<br>
<center>
<font size=4 color=red>
<b>Bem vindo!</b>
</font>
</body>
</html>

 

verifica.php

<?
ob_start();
// Liga-se à Base de Dados
include_once('ligacaoBD.php');

// Liga-se ao servidor e selecciona a base de dados.
mysql_connect("$host", "$username", "$password")or die("<br><center><font size=4 color=red><b>Erro! - Impossível liga à Base de Dados.</b></font>");header( 'refresh:3; url=index.php' ); 
mysql_select_db("$db_name")or die("<br><center><font size=4 color=red><b>Erro! - Impossível seleccionar a Tabela.</b></font>");header( 'refresh:3; url=index.php' ); 

// Define $myusername e $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Conta o número de linhas da tabela
$count=mysql_num_rows($result);

if($count==1){
// Regista $myusername, $mypassword e redirecciona para o file "successo.php"
session_register("myusername");
session_register("mypassword");
header("location:successo.php");

}else{

echo "<br><center><font size=4 color=red><b>Username ou Password Errados!</b></font>";
header( 'refresh:3; url=index.php' ); 
}
ob_end_flush();
?>

 

Ok... agora passemos à pasta Produtos onde se encontra o carrinho:

nesta pasta temos uma pasta Imagens CMOD(777)

 

 

actualiza.php

<? ob_start(); ?>
<?
session_start();
include('conexao.php');

// Obtem a id da sessão.
$sessao = session_id();

// Obtem a lista de produtos.
$itens = $_POST['quantidade'];

// Separa a lista e actualiza a base de dados.
foreach($itens as $chave => $quantidade){

// O valor de $chave é o código do produto enviado entre [].
// O valor de $quantidade é a quantidade do produto.
// Multiplicar por um garante que o valor será um número.
$quantidade *= 1;
$chave *= 1;

// Atualiza os valores.
mysql_query('UPDATE carrinho SET quant="'.$quantidade.'" WHERE cod="'.$chave.'" AND sessao="'.$sessao.'"');
}

// Retorna para a página do carrinho.
header('Location: verProdutos.php');
?>
<? ob_flush(); ?>

 

remover.php

<? ob_start(); ?>
<?
session_start();
include('conexao.php');

// Obtem a id da sessão.
$sessao = session_id();

// Obtem o código do produto.
$produto = $_GET['id'];

// Apaga o produto do carrinho.
mysql_query('DELETE FROM carrinho WHERE cod="'.$produto.'" AND sessao="'.$sessao.'"');

// Redireciona para a página de visualização.
header('Location: verProdutos.php');
?>
<? ob_flush(); ?>

 

carrinho.php

<?
ob_start();
session_start();

include "conexao.php";

$sessao = session_id();

$prod = intval($_GET["produto"]);

// Aqui verifico se existe algum carrinho pra essa sessão
$selc = mysql_query("SELECT * FROM carrinho WHERE sessao='$sessao' AND cod='$prod'") or die(mysql_error());
$numrows = mysql_num_rows($selc);
$arr = mysql_fetch_array($selc);

if($numrows > 0) { // Se retornar carrinhos para esta sessão, a var $qtde assume o valor do campo quant
	
	$qtde = $arr["quant"];

} else { // Caso contrário, assume valor 0
	
	$qtde = "0";
}
if($qtde >= 1) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento quantidade em +1
		
	$nova_qtde = $qtde + 1;
		
	$sql = "UPDATE carrinho SET quant='$nova_qtde' WHERE sessao='$sessao' AND cod='$prod'";	

} else { // Se não existir, registro com quantidade = 1
		
	$sql = "INSERT INTO carrinho (id, cod, quant, sessao) VALUES('', '$prod', '1', '$sessao')";	
}
	
$query = mysql_query($sql);

if($query) {
	
echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>";
header( 'refresh:3; url=verProdutos.php' ); 
echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='BotCarrinho.png' border='0'></a>";

} else {
	
echo "O produto não pôde ser adicionado ao carrinho!";
echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a>";
}
ob_flush();
?>

 

conexao.php

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?
// Dados da ligação
$servidor = 'localhost';
$usuario = '';
$senha = '';
$banco = 'teste';

// Conecta ao MySQL
if(!$con = mysql_connect($servidor, $usuario, $senha)){
echo 'Erro na ligação à base de dados';
exit();
}

// Seleciona o banco de dados
if(!mysql_select_db($banco, $con)){
echo 'Erro ao selecionar a base de dados';
exit();
}
?>

 

detalhes.php

<?
ob_start();
include('conexao.php');
?>

<html>
<body>

<?
$id = $_GET['id'];

$itens = mysql_query("SELECT * FROM produtos WHERE id = '$id'") or die(mysql_error());

if(mysql_num_rows($itens) < 1){
echo "Produto inválido!<br><br><a href='index.php'>Ir para a loja</a>";

} else {

while($item = mysql_fetch_assoc($itens)){
?>

<center>
<img src='BannerLoja.png' border='0'><br>
<table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'>
<tr>
<td bgcolor='#ffffff' align='center'>

<? 
echo '
<br>
<img width=400 height=300 border=0 src="Imagens/'.$item['img'].'">
<br>
<b>'.$produto['nome'].'</b>
<br>
';
?>

</td>
</tr>
<tr>
<td bgcolor='#99cc33' align='center'>
<center>
<font size='2' color='#ffffff'><b>Detalhes do Produto:</b></font>
</td>
</tr>
<tr>
<td bgcolor='#e3e3e3' align='center'>
<font size='4' color='#000000'><b><? echo $item['cod'] ?><? echo $item['nome'] ?></b></font>

<?
echo '
<br>
<b><hr size=1 color=green><font color=#99cc33>Descrição Detalhada:</font></b><br>'.$item['descricao'].'
<br>
<b><hr size=1 color=green><font color=#99cc33>Extras Incluídos:</font></b><br>'.$item['extras'].'
<br>
<b><hr size=1 color=green><font color=#99cc33>Stock Actual:</font></b><br>'.$item['stock'].'
';
?>

<br>
<b><hr size=1 color=green><font color=#99cc33>Preço:</font></b><br>
<font size='4' color='red'>
<b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?>
</td>
</tr>
<tr>
<td bgcolor='#99cc33' align='center'>
<?echo'<a href="carrinho.php?produto='.$item['id'].'"><img src="../Produtos/BotAdicionar.png" border="0"></a>';?><a href="verProdutos.php"><img src="BotCarrinho.png" border="0"></a> <a href="#" onclick="window.print();return false;"><img src="BotImprimir.png" border="0"></a> <a href="index.php"><img src="BotLoja.png" border="0"></a> <a href="finalizar.php"><img src="BotFinalizar.png" border="0"></a>
</td>
</tr>
</table>

<?
}}
ob_flush();
?>

</body>
</html>

 

verProdutos.php

<?
ob_start();
session_start();
include('conexao.php');

// Obtendo a id da sessão
$sessao = session_id();
?>

<html>
<body>
<form action='actualiza.php' method='post'>

<?
// Requisita à base de dados a id, quantidade e nome do produto.
// Como o nome está numa tabela diferente dos outros itens, incluo o nome da tabela junto ao nome do campo.
$itens = mysql_query('SELECT carrinho.cod, carrinho.quant, produtos.nome, produtos.img, produtos.preco FROM carrinho,produtos
WHERE carrinho.cod = produtos.id AND carrinho.sessao = "'.$sessao.'"');

// Uma verificação simples se o carrinho está vazio ou não
if(mysql_num_rows($itens) < 1){

// Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja
echo "<center><br><font size='5' color='red'><b>O carrinho está vazio...</b></font><br><br><a href='index.php'><img src='BotLoja.png' border='0'></a>";
header( 'refresh:3; url=index.php' ); 

} else {

// Exibe os itens presentes no carrinho
?>

<center>
<img src='BannerCarrinho.png' border='0'><br>
<table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800'>
<tr valign="middle">
<td bgcolor="#e3e3e3" width="40" align="left" valign="middle">
<font color='#99cc33' size='2'><b></b>
</td>
<td bgcolor="#e3e3e3" width="600" align="left" valign="middle">
<font color='#99cc33' size='2'><b>Lista de Produtos:</b>
</td>
<td bgcolor="#eeeeee" width="100">
<center>
<font color='#99cc33' size='2'><b>Preço Uni.</b>
</td>
<td bgcolor="#e3e3e3" width="50">
<center>
<font color='#99cc33' size='2'><b>Quant.</b>
</td>
<td bgcolor="#eeeeee" width="50">
<center>
<font color='#99cc33' size='2'><b>Opções</b>
</td>
</tr>

<?
// Calcular o preço total
$total = 0;

// Dou um loop pra listar is itens do carrinho de compras
while($item = mysql_fetch_assoc($itens)){
?>

<tr valign="middle">
<td bgcolor="#e3e3e3" width="40" align="left" valign="middle">
<center><b><a href="detalhes.php?id=<? echo $item['cod'] ?>"><? echo '<img width=40 height=30 border=0 src="Imagens/'.$item['img'].'">' ?></a></b>
</td>
<td bgcolor="#e3e3e3" width="600" align="left" valign="middle">
<b><a href="detalhes.php?id=<? echo $item['cod'] ?>"><? echo $item['nome'] ?></a></b>
</td>
<td bgcolor="#eeeeee" width="100">
<center>
<b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?>
</td>
<td bgcolor="#e3e3e3" width="50">
<center>
<input size='4' type='text' name='quantidade[<? echo $item["cod"] ?>]' value='<? echo $item["quant"] ?>'>
</td>
<td bgcolor="#eeeeee" width="50">
<center>
<a href='remover.php?id=<? echo $item["cod"] ?>'><img src='BotRemover.png' border='0'></a>
</td>
</tr>

<?
$total += $item['preco'] * $item['quant'];
}
?>

</table>
<center>
<table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='800' border='0'>
<tr>
<td bgcolor='#99cc33' width='560'>
<font color='#ffffff' size='4'>
<b>Total: €<font color='yellow'> <? echo number_format($total, 2, ',', ''); ?></b></font> - Iva incluído à taxa em vigor.</font>
</td><td><font color='#666666' size='2'> Preço s/portes de envio. <a href='portes.php'>Ver Preço Portes</a></font>
</td>
</tr>
</table>
<center>
<hr size=1 width="800" color="green">
<INPUT TYPE="image" SRC="BotActualizar.png" BORDER="0"> <a href=''><img src='BotLimpar.png' border='0'></a> <a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='finalizar.php'><img src='BotFinalizar.png' border='0'></a>
</form>

<?
}
ob_flush();
?>

</body>
</html>

 

e é tudo... espero que com todo o carrinho aqui postado seja possivel mais pessoas melhorar e completar o pouco que esta em falta para partilhar com todos, em vez de dizerem que partilham e depois ninguem partilha nada...

 

ora bem, o que está a faltar neste carrinho é fazer com que o carrinho associe as 2 sessions que existem, os produtos e o login do usuario e que crie uma nova pagina com os dados do carrinho e usuario logado para que possa finalizar a compra. ao finalizar a compra deverá enviar 1 email ao usuario com a sua encomenda e uma mensagem a dizer que está a ser processáda para envio, 1 email ao dono da loja virtual com os dados da encomenda e morada etc do usuario e ainda reduzir no DB na tabela stock os produtos que foram comprados... desta maneira conseguimos finalizar a compra e actualizar o stock ao mesmo tempo. É isso aí... espero contar com todos voces para terminar-mos o meu trabalho de ja 2 meses... Abraços, fiquem com deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE carrinho (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cod INT NOT NULL,
quant INT NOT NULL,
sessao VARCHAR(64) NOT NULL,
INDEX sessao (sessao)
);

 

Explique cada um dos campos desta tabela...

Por exemplo, id é o id do carrinho, certo? Cod é o que??? Código do produto? Do usuário??? Quant é a quantidade de cada produto? Sessao, o que é??? Onde está a ligação com o usuário??? Como você faz para saber que tal carrinho é de tal usuário??? Acho que é um problema de modelagem do banco de dados... Alias, fazer carrinho de compras com banco de dados eu nunca vi... Normalmente se faz gravando os dados em session... Mas aí fica a seu critério.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

id é o id do carrinho.

 

Cod é o numero unico gerado para cada produto no carrinho.

 

Quant é a quantidade de cada produto

 

Sessao é o numero unico de sessao

 

Onde está a ligação com o usuário??? o usuario esta na DB membros

 

Como você faz para saber que tal carrinho é de tal usuário???

R: é precisamente isso que queria fazer

 

Normalmente se faz gravando os dados em session???

 

eu no toturial que segui quando criei o carrinho tinha assim com base de dados... penso que é melhor para guardar os produtos na tabela em vez de ter que escrever no codigo cada produto... n sei...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde está a ligação com o usuário??? o usuario esta na DB membros

 

Como você faz para saber que tal carrinho é de tal usuário???

R: é precisamente isso que queria fazer

Quando eu pergunto ligação... é exatamente o que identifica que o carrinho é de tal usuário...

Veja...

- Ligação com os produtos - código do produto

- Ligação com o usuário - Falta...

 

A modelagem do seu BD está errado. No carrinho tem que ter um campo com a identificação do usuário que fez a compra, ou seja, de quem é o carrinho.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao mas isso n pode ser pegado da DB membros? assim se o usuario fizesse o login ele pegava nos dados desse usuario e usava no carrinho, se nao abria a pag para o usuario se inscrever... é que fiz promeiro o carrinho e so depois criei o script para login, por isso ficou em 2 DB diferentes... como ficaria se fosse você a fazer? neste caso seria o id_membro na DB membros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que ficar em 2 tabelas mesmo... Faça ligação na hora da consulta...

 

JOIN

 

http://dev.mysql.com/doc/refman/4.1/pt/join.html

 

Dica: Leia algumas apostilas sobre trabalhar com relacionamento de tabelas no Mysql... Vai te ajudar a entender como fazer.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

xiiii ja tive a dar uma vista de olhos, mas n estou a ver como aplicar isso aqui... eu vou ter que dizer para mostrar todos os dados incluidos na sessao do carrinho e na sessao do usuario com o id_membro activo :huh:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que adicionar mais um campo na tabela do banco de dados do carrinho, identificando quem é o usuário. Depois faz a consulta usando o JOIN no id das 2 tabelas... Não tem dificuldade. Se não está conseguindo fazer isto, é melhor estudar um pouco mais sobre PHP com Mysql, especialmente sobre relacionamento de tabelas. Porque fazer isto é o básico. Se você não está fazendo nenhum JOIN... tem coisa bem errada no teu carrinho de compras...

 

Olhe nesta página.

http://www.apostilando.com

 

Tem muuuuuuuuiiiiiitas apostilas sobre o assunto. Lendo qualquer uma delas você consegue entender a lógica do que estou te falando.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que adicionar mais um campo na tabela do banco de dados do carrinho, identificando quem é o usuário. Depois faz a consulta usando o JOIN no id das 2 tabelas... Não tem dificuldade. Se não está conseguindo fazer isto, é melhor estudar um pouco mais sobre PHP com Mysql, especialmente sobre relacionamento de tabelas. Porque fazer isto é o básico. Se você não está fazendo nenhum JOIN... tem coisa bem errada no teu carrinho de compras...

 

Olhe nesta página.

http://www.apostilando.com

 

Tem muuuuuuuuiiiiiitas apostilas sobre o assunto. Lendo qualquer uma delas você consegue entender a lógica do que estou te falando.

 

Carlos Eduardo

 

criei uma nova coluna na DB carrinho (idmembro VARCHAR(64) NOT NULL,)

deixa ver se eu percebi, visto a tabela Membros ser outra a parte, tenho que fazer com que ao fazer o login, a tabela membros envio o id para a tabela carrinho e o guarde no idmembro para depois pegar a idmembro e a cod e criar a pagina com os produtos e dados do cliente??? :mellow:/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Ricktuga.

 

tens q pensar agora em duas coisas.

- carrinho

- salvamento das informações

 

detalhe como estás salvando as "$_SESSIONS[]"

- está em duas "session()" diferentes?

- estão em diferentes variáveis dentro da mesma "session()"?

 

geralmente se salva no banco de dados depois do "finalizar compra" a menos q queiras "recuperar" a compra depois ou fazer um histórico de atividades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Ricktuga.

 

tens q pensar agora em duas coisas.

- carrinho

- salvamento das informações

 

detalhe como estás salvando as "$_SESSIONS[]"

- está em duas "session()" diferentes?

- estão em diferentes variáveis dentro da mesma "session()"?

 

geralmente se salva no banco de dados depois do "finalizar compra" a menos q queiras "recuperar" a compra depois ou fazer um histórico de atividades.

boas...

estou a gravar na session carrinho e na session membros o que deveria corresponder aos produtos no carrinho (que esta a funcionar as mil maravilhas) e a no membros que é outra session com os dados do user.

A minha duvida é mm criar uma outra pagina que exiba os produtos no carrinho tal como aparece no verProdutos.php onde se pode alterar quantidades, eliminar etc... e nessa mesma pagina a cena dos membros onde apos o login a pagina associe o que esta no carrinho aos dados desse cliente e envie. Ao enviar reduz no stock os produtos comprados. sinceramente deve ser facil, mas eu n estou a conseguir e pelo que vi ja em inumeros foruns e tuturiais é a parte onde toda a gente para sem saber pra onde se virar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que você confunde a todos assim...

 

estou a gravar na session carrinho e na session membros

Você não grava na session... Grava no BD. Aí bagunça a nossa cabeça e fica difícil de ajudar... Mas de qualquer forma...

 

criei uma nova coluna na DB carrinho (idmembro VARCHAR(64) NOT NULL,)

deixa ver se eu percebi, visto a tabela Membros ser outra a parte, tenho que fazer com que ao fazer o login, a tabela membros envio o id para a tabela carrinho e o guarde no idmembro para depois pegar a idmembro e a cod e criar a pagina com os produtos e dados do cliente???

Isto mesmo... Vou te dar um exemplo.

$sql = 'SELECT * FROM carrinho JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = SUA SESSAO';

Mais ou menos assim.

 

Tenta aí.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.