Ir para conteúdo

Arquivado

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

rickytuga

Pegar conteudo de 2 sessions

Recommended Posts

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

 

 

tentei criar um finalizar.php com o seguinte codigo:

 

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

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

<html>
<body>
<form method="post" action="enviacompras.php">

<style>
input, select {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
}

textarea {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
width: 300px
}
</style>

<?
// 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.'"');

// Requisita os dados do cliente
$sql = 'SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"';

// 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" style="width:150px"> <a href=''><img src='BotLimpar.png' border='0'></a> <a href='index.php'><img src='BotLoja.png' border='0'></a>

<?
// dados do cliente

if($valido === true){

// Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja
echo "<center><br><font size='5' color='red'><b>Por favor inicie sessão...</b></font><br><br><a href='index.php'><img src='BotLoja.png' border='0'></a>";
include '../Membros/index.php'; 

}else{
?>

<hr size=1 width="800" color="green">
<table cellpadding='5' bgcolor='#f3f3f3' cellspacing='1' width='800' border='0'>
<tr>
<td align='center'>
<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Dados do Cliente:</b>
</font>
<hr size=1 width="800" color="green">

Nome:
<br>
<? echo $sql['nome'] ?>
<br>
Telefone:
<br>
<? echo $sql['telefone'] ?>
<br>
Telemóvel:
<br>
<? echo $sql['telemovel'] ?>
<br>
Email:
<br>
<? echo $sql['email'] ?>
<br>
Nº Contribuinte:
<br>
<? echo $sql['contribuinte'] ?>

<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Opções de Entrega e Pagamento:</b>
</font>
<hr size=1 width="800" color="green">

Morada:
<br>
<? echo $sql['morada'] ?>
<br>
C.Postal:
<br>
<? echo $sql['cpostal'] ?>
<br>
Localidade:
<br>
<? echo $sql['localidade'] ?>
<br>
Indicações Extra:
<br>
<? echo $sql['indicacoes'] ?>
<br>
Horário de Entrega:
<br>
<? echo $sql['horario'] ?>
<br>
Tipo de Pagamento:
<br>
<? echo $sql['pagamento'] ?>
<br>

</td>
</tr>
</table>
<center>
<hr size=1 width="800" color="green">
<input type="image" src="BotFinalizar.png" border="0">

</form>

<?
}}
ob_flush();
?>

</body>
</html>

acontece que mostra a pagina, o carrinho onde permite alterar os produtos, mas na parte dos dados do usuario, não da qualquer erro mas em vez de mostrar os resultados não mostra... aparece um "S" em cada sitio onde deveria aparecer o resultado. Eu criei um if que deveria verificar se o membro estava activo, caso n esteja manda uma echo a avisar para fazer o login e inclui a pagina de login, caso esteja devia apenas aparecer os dados do cliente (com opcao de alterar se necessario) e o botao finalizar. pô mas n esta a dar... <_</>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está errado...

 

// Requisita os dados do cliente
$sql = 'SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"';

Você usa a $sql... Está faltando executar a query.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterei esta parte do conteudo para inputs, assim permite alterar os dados:

 

<table cellpadding='5' bgcolor='#f3f3f3' cellspacing='1' width='800' border='0'>
<tr>
<td align='center'>
<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Dados do Cliente:</b>
</font>
<hr size=1 width="800" color="green">

Nome:
<br>
<input size='4' type='text' name='cliente' value='<? echo $sql['cliente'] ?>' style="width:500px">
<br>
Telefone:
<br>
<input size='4' type='text' name='telefone' value='<? echo $sql['telefone'] ?>' style="width:500px">
<br>
Telemóvel:
<br>
<input size='4' type='text' name='telemovel' value='<? echo $sql['telemovel'] ?>' style="width:500px">
<br>
Email:
<br>
<input size='4' type='text' name='email' value='<? echo $sql['email'] ?>' style="width:500px">
<br>
Nº Contribuinte:
<br>
<input size='4' type='text' name='contribuinte' value='<? echo $sql['contribuinte'] ?>' style="width:500px">
<br>
<br>
<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Opções de Entrega e Pagamento:</b>
</font>
<hr size=1 width="800" color="green">

Morada:
<br>
<textarea rows="4" cols="20" style="width:500px"><? echo $sql['morada'] ?></textarea>
<br>
C.Postal:
<br>
<input size='4' type='text' name='cpostal' value='<? echo $sql['cpostal'] ?>' style="width:500px">
<br>
Localidade:
<br>
<input size='4' type='text' name='localidade' value='<? echo $sql['localidade'] ?>' style="width:500px">
<br>
Indicações Extra:
<br>
<input size='4' type='text' name='indicacoes' value='<? echo $sql['indicacoes'] ?>' style="width:500px">
<br>
Horário de Entrega:
<br>
<input size='4' type='text' name='horario' value='<? echo $sql['horario'] ?>' style="width:500px">
<br>
Tipo de Pagamento:
<br>
<input size='4' type='text' name='pagamento' value='<? echo $sql['pagamento'] ?>' style="width:500px">
<br>
<br>

</td>
</tr>
</table>

falta ainda criar um botao que permita que se guarde as alteracoes na DB membros.

Quanto a query... alterei para:

$sql = mysql_query('SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"');
mas continua a n resultar, desta vez n mostra nada dentro dos inputs <_</>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não está mandando gerar o resultado...

 

mysql_fetch_array ou mysq_fetch_assoc ou mysql_result ou ...

 

Carlos Eduardo

 

esta a dar erro :(/>

 

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/rpublici/public_html/teste/Produtos/finalizar.php on line 140

 

Codigo Actual:

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

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

<html>
<body>
<form method="post" action="enviacompras.php">

<style>
input, select {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
}

textarea {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
width: 300px
}
</style>

<?
// 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 os 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" style="width:150px"> <a href=''><img src='BotLimpar.png' border='0'></a> <a href='index.php'><img src='BotLoja.png' border='0'></a>

<?
// Requisita os dados do cliente
$clientes = mysql_query('SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"');



// dados do cliente

if($valido === true){

// Se o carrinho estiver vazio só exibe uma mensagem e um link para a loja
echo "<center><br><font size='5' color='red'><b>Por favor inicie sessão...</b></font><br><br><a href='index.php'><img src='BotLoja.png' border='0'></a>";
include '../Membros/index.php'; 

}else{

// dou um loop para listar os dados do cliente
while($dados = mysql_fetch_assoc($clientes)){
?>

<hr size=1 width="800" color="green">
<table cellpadding='5' bgcolor='#f3f3f3' cellspacing='1' width='800' border='0'>
<tr>
<td align='center'>

<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Dados do Cliente:</b>
</font>
<hr size=1 width="800" color="green">

Cliente:
<br>
<input size='4' type='text' name='cliente' value='<? echo $dados["cliente"] ?>' style="width:500px">
<br>
Telefone:
<br>
<input size='4' type='text' name='telefone' value='<? echo $dados["telefone"] ?>' style="width:500px">
<br>
Telemóvel:
<br>
<input size='4' type='text' name='telemovel' value='<? echo $dados["telemovel"] ?>' style="width:500px">
<br>
Email:
<br>
<input size='4' type='text' name='email' value='<? echo $dados["email"] ?>' style="width:500px">
<br>
Nº Contribuinte:
<br>
<input size='4' type='text' name='contribuinte' value='<? echo $dados["contribuinte"] ?>' style="width:500px">
<br>
<br>
<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Opções de Entrega e Pagamento:</b>
</font>
<hr size=1 width="800" color="green">

Morada:
<br>
<textarea rows="4" name="morada" cols="20" style="width:500px"><? echo $dados["morada"] ?></textarea>
<br>
C.Postal:
<br>
<input size='4' type='text' name='cpostal' value='<? echo $dados["cpostal"] ?>' style="width:500px">
<br>
Localidade:
<br>
<input size='4' type='text' name='localidade' value='<? echo $dados["localidade"] ?>' style="width:500px">
<br>
Indicações Extra:
<br>
<input size='4' type='text' name='indicacoes' value='<? echo $dados["indicacoes"] ?>' style="width:500px">
<br>
Horário de Entrega:
<br>
<input size='4' type='text' name='horario' value='<? echo $dados["horario"] ?>' style="width:500px">
<br>
Tipo de Pagamento:
<br>
<input size='4' type='text' name='pagamento' value='<? echo $dados["pagamento"] ?>' style="width:500px">
<br>
<br>

</td>
</tr>
</table>
<center>

<?
}
?>

<hr size=1 width="800" color="green">
<input type="image" src="BotFinalizar.png" border="0">

</form>

<?
}}
ob_flush();
?>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Significa que está dando erro na query anterior ao fetch_array.

$clientes = mysql_query('SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"') or die(mysql_error());

Vai exibir o erro do mysql. Mas na verdade não precisa fazer isto... Você precisa pegar os dados do usuário do carrinho... Então faz o select ... where idmembro = id_do_membro_que_logou.

 

Pensa um pouco... Tá quase lá.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não lí seu tópico inteiro, mas para utilizar duas sessões vocÊ faz;

 

Destrói uma sessão atual. com Write Close, e guarda o ID da sessão em uma variável.

 

$variavel = session_id();

 

Abre uma nova sessão, ou, re-utiliza a sessão finalizada com Session Write Close.

 

EX:

session_start();
//Neste local o ID da sessão é 123asqwq
$variavel = session_id();

session_write_close(); 
//Fecha a sessão;

session_start();
//Cria outra sessão com qwe123qwe
$variavelDois = session_id();

session_write_close;

/* agora para re-criar a sessão utilizada pela primeira vez, você utiliza*/

session_id($variavel);
session_start();

//Agora a sessão terá o ID = 123asqwq
// E os dados desta sessão são os gravados anteriormente.

http://www.php.net/manual/pt_BR/function.s...write-close.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... o seu problema é de lógica...

 

Veja... Você quer exibir os dados do cliente que fez as compras, certo? Sabe exibir os dados do cliente? Fazendo uma consulta ao banco de dados e buscando todos os dados dele. Quem é ele? Está na sua session.

 

Pense um pouco. Não é problema de código. É problema de lógica... Não tem que usar JOIN nem nada... É uma consulta simples.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... É só fazer 2 consultas... Uma do carrinho e uma do usuário (usando o usuário que está no carrinho). Daí é só fazer o que você quer fazer com eles.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como é q eu sei o usuario que esta no carrinho se o carrinho usa uma session e o sistema de login outra session em uma DB diferente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, vamos acertar a nomenclatura.

- Você não usa session no seu carrinho. Você usa banco de dados.

- O sistema de login e o carrinho NÃO estão em DB diferentes. Estão em TABELAS diferentes, dentro do mesmo DB.

 

Agora podemos começar. Você não está guardando na TABELA do carrinho o código do cliente (ou sei lá como você tá chamando)? Então, quando buscar o resultado do carrinho, pega o código do usuário deste resultado, grava em uma variável e faz uma nova consulta para pegar os dados do cliente. Daí é só fazer o que quiser com os dados deste cliente.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, vamos acertar a nomenclatura.

- Você não usa session no seu carrinho. Você usa banco de dados.

- O sistema de login e o carrinho NÃO estão em DB diferentes. Estão em TABELAS diferentes, dentro do mesmo DB.

 

Agora podemos começar. Você não está guardando na TABELA do carrinho o código do cliente (ou sei lá como você tá chamando)? Então, quando buscar o resultado do carrinho, pega o código do usuário deste resultado, grava em uma variável e faz uma nova consulta para pegar os dados do cliente. Daí é só fazer o que quiser com os dados deste cliente.

 

Carlos Eduardo

 

não... o que eu tenho no carrinho é o codigo dos produtos, nao do cliente, esse esta na tabela membros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem condições de te ajudar assim...

Estamos falando tudo de novo...

No post 17 você disse que criou mais um campo na tabela carrinho para ligar com a tabela do usuário... Agora você diz que não tem????

 

Releia todo o tópico. Tudo o que você precisa já foi escrito. Agora o que lhe falta é parar, ler o que já foi falado em TODOS os posts, pensar um pouco e fazer. Não tem mais como te ajudar.

 

Ajudar mais que isto só se fizer por você, o que NEM EU NEM NINGUÉM vai fazer.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem condições de te ajudar assim...

Estamos falando tudo de novo...

No post 17 você disse que criou mais um campo na tabela carrinho para ligar com a tabela do usuário... Agora você diz que não tem????

 

Releia todo o tópico. Tudo o que você precisa já foi escrito. Agora o que lhe falta é parar, ler o que já foi falado em TODOS os posts, pensar um pouco e fazer. Não tem mais como te ajudar.

 

Ajudar mais que isto só se fizer por você, o que NEM EU NEM NINGUÉM vai fazer.

 

Carlos Eduardo

 

tens razao, ja n me lembrava que tinha adicionado esse campo na tabela carrinho sorry

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código que tenho no momento para requisitar os dados do cliente é:

 

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

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

<html>
<body>
<form method="post" action="enviacompras.php">

<style>
input, select {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
}

textarea {
font-size: 11px;
background-color: #FFFFFF;
margin: 0px;
border: 0px solid #cac5a3;
width: 300px
}
</style>

<?
// 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 os 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" style="width:150px"> <a href=''><img src='BotLimpar.png' border='0'></a> <a href='index.php'><img src='BotLoja.png' border='0'></a>




<?
///////////////////////////////////
// Requisita os dados do cliente //
///////////////////////////////////

$clientes = mysql_query('SELECT * FROM carrinho,membros JOIN membros ON carrinho.idmembro = membros.id_membro WHERE sessao = "'.$uid.'"');

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

// Se o campo id_membro estiver vazio exibe uma mensagem
echo "<center><br><font size='5' color='red'><b>Inicie sessão por favor...</b></font><br>";
include '../Membros/index.php';

}else{

// Exibe os dados do cliente
?>





<hr size=1 width="800" color="green">
<table cellpadding='5' bgcolor='#f3f3f3' cellspacing='1' width='800' border='0'>
<tr>
<td align='center'>

<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Dados do Cliente:</b>
</font>
<hr size=1 width="800" color="green">

Cliente:
<br>
<input size='4' type='text' name='cliente' value='<? echo $dados["cliente"] ?>' style="width:500px">
<br>
Telefone:
<br>
<input size='4' type='text' name='telefone' value='<? echo $dados["telefone"] ?>' style="width:500px">
<br>
Telemóvel:
<br>
<input size='4' type='text' name='telemovel' value='<? echo $dados["telemovel"] ?>' style="width:500px">
<br>
Email:
<br>
<input size='4' type='text' name='email' value='<? echo $dados["email"] ?>' style="width:500px">
<br>
Nº Contribuinte:
<br>
<input size='4' type='text' name='contribuinte' value='<? echo $dados["contribuinte"] ?>' style="width:500px">
<br>
<br>
<hr size=1 width="800" color="green">
<font size=3 color=green>
<b>Opções de Entrega e Pagamento:</b>
</font>
<hr size=1 width="800" color="green">

Morada:
<br>
<textarea rows="4" name="morada" cols="20" style="width:500px"><? echo $dados["morada"] ?></textarea>
<br>
C.Postal:
<br>
<input size='4' type='text' name='cpostal' value='<? echo $dados["cpostal"] ?>' style="width:500px">
<br>
Localidade:
<br>
<input size='4' type='text' name='localidade' value='<? echo $dados["localidade"] ?>' style="width:500px">
<br>
Indicações Extra:
<br>
<input size='4' type='text' name='indicacoes' value='<? echo $dados["indicacoes"] ?>' style="width:500px">
<br>
Horário de Entrega:
<br>
<input size='4' type='text' name='horario' value='<? echo $dados["horario"] ?>' style="width:500px">
<br>
Tipo de Pagamento:
<br>
<input size='4' type='text' name='pagamento' value='<? echo $dados["pagamento"] ?>' style="width:500px">
<br>
<br>

</td>
</tr>
</table>
<center>

<?
}
?>

<hr size=1 width="800" color="green">
<input type="image" src="BotFinalizar.png" border="0">

</form>

<?
}
ob_flush();
?>

</body>
</html>

 

mas esta a dar erro :(/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rick!

 

tah na hora de começar tudo denovo!

faça um Backup de tudo!

 

começe raciocinando:

-> quem pode comprar? cadastrado e logado? [ok!]

pra que q tu quer usar duas sessoes? soh pra ter esse trabalho imenso q estás a ter?

só diferenciar os nomes das variáveis(crie uma array para os produtos se quiser)

 

-> você tem q ter controle de duas coisas:

"identificação do usuário" e os "produtos" que ele(usuário) vai comprar.

 

-> de onde vem os dados de usuário? e dos produtos?

do banco, claro.

os dados do usuário tem um "número único" (ou "id") em uma tabela especial só com dados dos usuários cadastrados, e esse "id" foi inserido na sessão assim q ele logou.

E o produto!? também tem um "id" único armazenado em uma outra tabela especial só para os produtos!

(ufa, estamos conseguindo!)

 

-> como que rastrearás(salvar, vincular ao cliente, ...) os produtos comprados???

escolha: banco ou sessão

- duplicidades podem lhe causar complicações depois.

- no banco as informações ficarão "eternamente" armazenadas(pensou daki uns anos tu arrumando, limpando, reparando aquele monte de compras nao finalizadas?)

- lembre que será nescessário uma tabela diferente (soh pros 'rastros'/'lista de compras') para armazenar isto.

- na sessão se o usuário fechar o navegador, adeus longa lista de compras q ele fez!(trocados a menos!?!?, talvez)

 

-> problema resolvido! agora o usuário só precisa finalizar a compra.

chegando aki o usuário irá ver os produtos que ele selecionou, e seu nome bunitinhos escrito em cima. Mas como??

Simples! o id dele não está na sessão!? Sim!!!

pegue o "id" dele que está na sessão e pergunte ao banco de dados qual o nome do usuário.

E os produtos!? por acaso cada produto nao tem um número único? Sim!!

pergunte ao banco de dados o nome de cada produto usando cada "id" de produtos registrados na sessão.

 

-> prontinho agora só finalizar, fazer as contas e gerar os dados para pagamento!

 

siga esses passos meu caro.

sugiro que (re)leia sobre sessoes, banco de dados e tudo o mais que lhe for útil.

 

Grande Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok vamos recomeçar...

realmente este codigo esta uma baralhada embora funcione tudo menos o finalizar...

 

criamos uma nova DB (Data Base):

 

-- ---------------------------------------------------------
-- Estrutura da tabela `clientes`
-- ---------------------------------------------------------

CREATE TABLE IF NOT EXISTS `clientes` (
  `id_clientes` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `perguntasecreta` varchar(100) NOT NULL,
  `respostasecreta` varchar(100) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `morada` varchar(250) NOT NULL,
  `cpostal` varchar(50) NOT NULL,
  `localidade` varchar(50) NOT NULL,
  `telefone` varchar(15) NOT NULL,
  `telemovel` varchar(15) NOT NULL,
  `email` varchar(100) NOT NULL,
  `fax` varchar(15) NOT NULL,
  `contribuinte` varchar(15) NOT NULL,
  `facturas` varchar(100) NOT NULL,
  PRIMARY KEY  (`id_clientes`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- ---------------------------------------------------------
-- Estrutura da tabela `produtos`
-- ---------------------------------------------------------

CREATE TABLE IF NOT EXISTS `produtos` (
  `id_produtos` int(11) NOT NULL auto_increment,
  `referencia` varchar(10) NOT NULL,
  `data` varchar(10) NOT NULL,
  `categoria` varchar(50) NOT NULL,
  `produto` varchar(100) NOT NULL,
  `stock` varchar(10) NOT NULL,
  `descricao` varchar(500) NOT NULL,
  `detalhes` varchar(2500) NOT NULL,
  `preco` varchar(10) NOT NULL,
  `disponibilidade` varchar(20) NOT NULL,
  `imagens` VARCHAR(20) NOT NULL,
  PRIMARY KEY  (`id_produtos`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- ---------------------------------------------------------
-- Estrutura da tabela `carrinho`
-- ---------------------------------------------------------

CREATE TABLE IF NOT EXISTS carrinho (
  `id_carrinho` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `produtosnocarrinho` INT NOT NULL,
  `quantidade` INT NOT NULL,
  `sessao` VARCHAR(64) NOT NULL,
  INDEX sessao (sessao)
);

Criamos um novo ficheiro de ligação à DB (conexao.php):

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?
// Dados da ligação
$servidor = 'localhost';
$user = 'user';
$pass = 'pass';
$db = 'carrinho';

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

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

Criamos o (index.php) já com a paginação incluída:

 

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

<html>
<body>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">

<style type="text/css">
<!--
.pag {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    background-color: #f3f3f3;
    width: 800px;
    text-decoration: none;
}
-->
</style>

</head>
<body>

<?
###################################################################################
// PAGINAÇÃO

if($_SERVER['REQUEST_METHOD']=='GET'){
$pg = isset($_GET['pg']) ? (int)(htmlentities($_GET['pg'])) : 1;
($pg <= 0) ? $pg = 1 : NULL;
  
$inicio = ($pg * 9) - 9;
$select = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT 9")or die(mysql_error());
  

###################################################################################
// INICIO DO CONTEÚDO

echo "
<center>
<img src='Imagens/BannerLoja.png' border='0'><br>
<table cellpadding='5' cellspacing='1' width='800'>
<tr>
<td align='center'>
";
 
$sql = mysql_query("SELECT * FROM produtos ORDER BY id_produtos LIMIT $inicio,12") or die(mysql_error());
 
// Exibimos os nomes dos produtos e seus repectivos valores
while ($ver = mysql_fetch_assoc($sql)) {


echo '<div style="border: 0px width: 800px; float: center;">';

// Mostra a imagem e nome do produto.
echo '
<div width="200" style="border: 1px solid white; width: 195px; float: left;">
<br>
<a href="detalhes.php?id='.$ver['id'].'"><img width=120 height=90 border=0 src="Imagens/'.$ver['img'].'"></a>
<br>
<b>'.$ver['nome'].'</b>
<br>
';

// Mostra o preço.
echo '€ '.number_format($ver['preco'], 2, ',', '').'<br>';

// Mostra o link pra adicionar ao carrinho.
echo '<a href="carrinho.php?produto='.$ver['id'].'"><img src="Imagens/BotAdicionar.png" border="0"></a><br><br></div>';
}

echo "
</td>
</tr>
</table>
";
// FIM DO CONTEUDO
###################################################################################

}
  
mysql_free_result($select);
$conta_reg = mysql_query("SELECT COUNT(*) AS id_produtos FROM produtos LIMIT 12") or die(mysql_error());
$total_reg = mysql_result($conta_reg,0,id_produtos);
$paginas   = ceil($total_reg/9);
mysql_free_result($conta_reg);
?>

<table cellpadding='5' cellspacing='1' width='800'>
<tr>
<td class="pag" align='left'>
<a href="?pg=1">Primeira Página</a>
</td>
<td class="pag" align='center'>
    
<?
for($i = $pg-LINKS; $i <= $pg-1; $i++){
($i <= 0) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>';
}
print '<a href="#">'.$pg.'</a>';
for($i = $pg+1; $i <= $pg+9; $i++){
($i > $paginas) ? false : print '<a href="?pg='.$i.'">'.$i.'</a>';
}
###################################################################################
// FIM DA PAGINAÇÃO
?>

</td>
<td class="pag" align='right'><a href="?pg=<? print $paginas; ?>">Última Página</a></td>
</tr>
</table>

</body>
</html>


<hr size=1 color=green width=800>
<a href='verProdutos.php'><img src='Imagens/BotCarrinho.png' border='0'></a>
</body>
</html>

e de seguida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que decidiu?

vais utilizar sessão ou mandar tudo pro banco de dados?

se for utilizar sessão noa precisarás mais da tabela 'carrinho'.

mas mesmo assim terás que criar uma tabela para armazenar os dados(finais) da compra.

 

se for utilizar sessão jogue tudo(nescessário) pra lá.

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.