Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola... no meu carrinho de compras, quando clico 2 vezes no mesmo produto, ele adiciona 2 produtos iguais ao carrinho em vez de alterar o numero para 2, alguem me sabe dizer como coloco um "if" que faça o script entender que caso ja exista esse produto no carrinho, altere a quantidade para +1 ?!??!
index.php (ficheiro que exibe os produtos)
<?
session_start();
include('conexao.php');
?>
<html>
<body>
<?
// Faz o pedido à base de dados.
$produtos = mysql_query('SELECT * FROM produtos ORDER BY RAND()', $con);
while($produto = mysql_fetch_assoc($produtos)){
echo '<div>';
// Mostra a imagem e nome do produto.
echo '<br><img width=120 height=90 border=0 src="Imagens/'.$produto['img'].'"><br><b>'.$produto['nome'].'</b><br>';
// Mostra o preço.
echo '€ '.number_format($produto['preco'], 2, ',', '').'<br>';
// Mostra o link pra adicionar ao carrinho.
echo '<a href="carrinho.php?produto='.$produto['id'].'">Adicionar ao Carrinho</a><br><br>';
echo '<a href="verProdutos.php">Ver Carrinho</a></div>';
}
?>
</body>
</html>
verProdutos.php (ficheiro que mostra os produtos adicionados ao carrinho)
<?
session_start();
include('conexao.php');
// Obtendo a id da sessão
$sessao = session_id();
?>
<html>
<body>
<form action='atualiza.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 "Carrinho Vazio!<br><br><a href='index.php'>Ir para a loja</a>";
} else {
// Exibe os itens presentes no carrinho
?>
<table bgcolor='#99cc33' cellpadding='5' cellspacing='1' width='500'>
<?
// 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">
<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="300" 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"] ?>'>Eliminar</a>
</td>
</tr>
<?
$total += $item['preco'] * $item['quant'];
}
?>
</table>
<table cellpadding='5' cellspacing='1' width='500'>
<tr>
<td bgcolor='#99cc33'>
<font color='#ffffff'>
<b>Total: €</b> <? echo number_format($total, 2, ',', ''); ?> - Iva incluído.</font>
<font color='#666666' size='2'> (Preço sem portes de envio. Consulte a tabela de portes.)</font>
</td>
</tr>
</table>
<hr size=1 width="500" align='left'>
<input type='submit' value='Actualizar'> <input type='button' onclick='window.location.href="index.php"' value='Continuar às Compras'> <input type='button' onclick='window.location.href="comprar.php"' value='Finalizar Compras'>
</form>
<?}?>
</body>
</html>
Alguem me pode ajudar!? Obrigado! :rolleyes:
>
<?php
if( in_array('nome_do_produto', $_SESSION) )
{
$_SESSION['qntProduto'] = $_SESSION['qntProduto']++;
}else{
// código que adiciona o produto no carrinho
}
?>
A lógica seria mais ou menos essa.
esse codigo era para colocar onde? penso que dentro do carrinho.php certo? tentei fazer como dizes mas continua a meter 2 produtos iguais e da um erro... adaptei ao meu codigo, ficou assim:
<?
session_start();
include('conexao.php');
// Obtem a id da sessão.
$sessao = session_id();
// Obtem o código do produto.
$produto = $_GET['produto'];
?>
<html>
<body>
<?
// código que adiciona o produto no carrinho
if( in_array('produto', $sessao)){
$sessao['quant'] = $sessao['quant']++;
}else{
if(!mysql_query('INSERT INTO carrinho (cod, quant, sessao) VALUES ("'.$produto.'", "1", "'.$sessao.'")', $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
} else {
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
}}
?>
</body>
</html>
e aparece este erro:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/rpublici/public_html/teste/Produtos/carrinho.php on line 17
OK... Adicionado ao Carrinho!
Fez errado.
<?
session_start();
include('conexao.php');
// Obtem a id da sessão.
$sessao = session_id();
// Obtem o código do produto.
$produto = $_GET['produto'];
?>
<html>
<body>
<?
// código que adiciona o produto no carrinho
if( in_array($produto, $_SESSION)){
$_SESSION['quant'] = $_SESSION['quant']++;if(!mysql_query('INSERT INTO carrinho (cod, quant, sessao) VALUES ("'.$produto.'", "1", "'.$sessao.'")', $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
} else {
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
}}
?>
</body>
</html>>
Fez errado.
<?
session_start();
include('conexao.php');
// Obtem a id da sessão.
$sessao = session_id();
// Obtem o código do produto.
$produto = $_GET['produto'];
?>
<html>
<body>
<?
// código que adiciona o produto no carrinho
if( in_array($produto, $_SESSION)){
$_SESSION['quant'] = $_SESSION['quant']++;if(!mysql_query('INSERT INTO carrinho (cod, quant, sessao) VALUES ("'.$produto.'", "1", "'.$sessao.'")', $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
} else {
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
}}
?>
</body>
</html>
ok ja corrigi e meti como esta aí, deixou de dar erros mas continua a adicionar os 2 produtos na lista em vez de alterar o numero pra 2
Não tem nada a ver com SESSION... Você tá gravando o carrinho de compras no BD... Então você tem que mudar no banco de dados...
Tira tudo que foi feito aqui... E faz mais ou menos isto
// código que adiciona o produto no carrinho
$qry = mysql_query(SELECT COUNT(*) FROM tabela WHERE id = ID_DO_PRODUTO_DO_CARRINHO);
$qtde = mysql_num_rows($qry);
if ($qtde > 0){
if(!mysql_query('UPDATE carrinho SET qtde = (qtde + 1) WHERE id = ID_DO_PRODUTO_DO_CARRINHO)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
} else {
if(!mysql_query('INSERT INTO carrinho (cod, quant, sessao) VALUES ("'.$produto.'", "1", "'.$sessao.'")', $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
} else {
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
}
}
Veja que tem que arrumar as querys... completa com os campos devidos... A lógica é mais ou menos esta... usando o formato que você usou, de gravar no banco de dados...
Carlos Eduardo
ao meter assim como dizes da erro... o codigo actual que tenho é:
<?
$id = $_GET['id'];
// código que selecciona o produto no carrinho
$qry = mysql_query("SELECT COUNT(*) FROM produtos, WHERE id = '$id'");
$qtde = mysql_num_rows($qry);
if ($qtde > 0){if(!mysql_query("UPDATE carrinho SET qtde = (qtde + 1) WHERE id = '$id'")){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
}else{
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
}else{
// código que adiciona o produto no carrinho
if(!mysql_query("INSERT INTO carrinho (cod, quant, sessao) VALUES ('.$produto.', '1', '.$sessao.')", $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
}else{
echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>";
echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='BotCarrinho.png' border='0'></a>";
}}
?>
e da o seguinte erro:
Parse error: syntax error, unexpected T_ELSE in /home/rpublici/public_html/teste/Produtos/carrinho.php on line 19 :(
Tenta assim
if ($qtde > 0){
// código que actualiza o produto no carrinho
$sql = "UPDATE carrinho SET qtde = (qtde + 1) WHERE id = '$id'";// código que adiciona o produto no carrinho
$sql = "INSERT INTO carrinho (cod, quant, sessao) VALUES ('.$produto.', '1', '.$sessao.')";
}
$x = mysql_query($sql);
if ($x){
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
}
?>estou a usar este codigo:
<?
session_start();
include('conexao.php');
$id = $_GET['id'];
// código que selecciona o produto no carrinho
$qry = mysql_query("SELECT COUNT(*) FROM produtos, WHERE id = '$id'");
$qtde = mysql_num_rows($qry);
if ($qtde > 0){$sql = "UPDATE carrinho SET qtde = (qtde + 1) WHERE id = '$id'";// código que adiciona o produto no carrinho
$sql = "INSERT INTO carrinho (cod, quant, sessao) VALUES ('.$produto.', '1', '.$sessao.')";
}
$x = mysql_query($sql);
if ($x){
echo "OK... Adicionado ao Carrinho!<br><br>";
echo "<a href='index.php'>Continuar às Compras</a>";
} else {
echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>";
echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='BotCarrinho.png' border='0'></a>";
}
?>
da o seguinte erro:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/rpublici/public_html/teste/Produtos/carrinho.php on line 9
OK... Adicionado ao Carrinho!
Continuar às Compras
Pra que COUNT e mysql_num_rows?
Usa só o num_rows:
$query = mysql_query ("SELECT *...");
$num = mysql_num_rows($query);Este erro está dizendo que o que foi pro mysql_num_rows não é um resultado mysql. Veja que isto acontece quando ocorre um erro na query.
Troca isto
$qry = mysql_query("SELECT COUNT(*) FROM produtos, WHERE id = '$id'");
Por isto
$qry = mysql_query("SELECT COUNT(*) FROM produtos, WHERE id = '$id'") or die(mysql_error());
Coloca o or die(mysql_error()) sempre onde tiver mysql_query.
Carlos Eduardo
PS: Vou querer participação neste projeto... hahuauhhuauha
>
Pra que COUNT e mysql_num_rows?
Usa só o num_rows:
$query = mysql_query ("SELECT *...");
$num = mysql_num_rows($query);
Pois é... Ia sugerir de uma forma e acabei misturando as duas...
Obrigado pelo aviso
Carlos Eduardo
Ae lek, vi o erro agora:
> $qry = mysql_query("SELECT COUNT(*) FROM produtos**,** WHERE id = '$id'") or die(mysql_error());
Coloca assim
$qry = mysql_query("SELECT COUNT(*) AS num_resultados FROM produtos WHERE id='$id'") or die(mysql_error());
Ae pra exibir tu bota:
$arr = mysql_fetch_array($qry);
echo $arr["num_resultados"];mau demaissssssss :o ao meter isso agora aparece simplesmente so: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = ''' at line 1
A sua variável $id não tá enviando nenhum valor para a query.
Dá um echo nela pra ver se tá populada. E tenta tirar os espaços entre o id=', assim:
$qry = mysql_query("SELECT COUNT(*) AS num_resultados FROM produtos WHERE id='$id'") or die(mysql_error());
faloResumidamente, o unico codigo que ainda funciona mais ou menos é o inicial, ou seja este:
<?
session_start();
include('conexao.php');
// Obtem a id da sessão.
$sessao = session_id();
// Obtem o código do produto.
$produto = $_GET['produto'];
?>
<html>
<body>
<?
// código que adiciona o produto no carrinho
if( in_array($produto, $_SESSION)){
$_SESSION['quant'] = $_SESSION['quant']++;
}else{
if(!mysql_query('INSERT INTO carrinho (cod, quant, sessao) VALUES ("'.$produto.'", "1", "'.$sessao.'")', $con)){
echo 'O produto não pode ser adicionado ao carrinho de compras';
echo '<br><a href="index.php">Voltar</a>';
}else{
echo "<center><br><font size='5' color='red'><b>OK... Produto Adicionado ao Carrinho!</b></font><br><br>";
echo "<center><a href='index.php'><img src='BotLoja.png' border='0'></a> <a href='verProdutos.php'><img src='BotCarrinho.png' border='0'></a>";
}}
?>
</body>
</html>
todos os outros que me deram ou simplesmente n funcionam ou dao erros e mais erros... continuo sem ter o meu problema resolvido :(
o site é http://rpublicidade.com/teste/Produtos/index.php aqui podem ver o que estou a fazer ao mm tempo quem sabe ajude a resolver melhor os codigos
Olha... a lógica é a que eu te passei... Só tem erro de sintaxe...Imprime a query e veja o que está errado... O Red Fenix achou um erro (uma , a mais).
Provavelmente era só isto que estava errado.
todos os outros que me deram ou simplesmente n funcionam ou dao erros e mais erros... continuo sem ter o meu problema resolvido
Cara... tu tá muito errado no teu pensamento... o fórum não serve para as pessoas te DAREM códigos... as pessoas tentam TE AJUDAR a colocar o seu para funcionar.
Estou te abandonando... Vamos ver se outro resolve te ajudar, porque pra mim deu.
Carlos Eduardo
Amigo,
Vamos com calma, ok!?
Me diga como tu idealizou teu sistema e como está a estrutura da tua base de dados.
Falo
Ae amigo,
Faça o seguinte.
você vai trabalhar com duas tabelas nesse caso. Uma que registra os ID's e quantidades dos produtos cadastrados em cada carrinho (produtos_car) e outra que registra os carrinhos de cada sessão (carrinhos). Ae você vai relacionar as duas.
IMPORTANTE: A tabela produtos_car NÃO contém as informações dos produtos cadastrados no site. Estas devem estar em outra tabela e o id do produto a ser adicionado deve ser passado via URL.
Copie e cole o seguinte código pra criar as tabelas SQL:
CREATE TABLE `carrinhos` (
`carrinho_id` int(15) NOT NULL auto_increment,
`sessao_carrinho` varchar(50) NOT NULL,
PRIMARY KEY (`carrinho_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
CREATE TABLE `produtos_car` (
`id_produto` int(15) NOT NULL,
`carrinho_p` int(15) NOT NULL,
`quantidade` int(15) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Agora utilize o seguinte código na página carrinho.php:
<?php
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 carrinhos WHERE sessao_carrinho='$sessao'") or die(mysql_error());
$numrowsc = mysql_num_rows($selc);
//Se existir, cadastro os produtos dentro desse carrinho
if($numrowsc > 0) {
$arr = mysql_fetch_array($selc);
$id_carrinho = $arr["carrinho_id"]; // Pego o id do carrinho em questão
$selp = mysql_query("SELECT * FROM produtos_car WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'") or die(mysql_error()); // Seleciono o produto desse carrinho
if(mysql_num_rows($selp) > 0) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento a quantidade em +1
$info = mysql_fetch_array($selp);
$qtde = $info["quantidade"];
$nova_qtde = $qtde + 1;
$sql = "UPDATE produtos_car SET quantidade='$nova_qtde' WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'";
}
else { // Se não existir, registro com quantidade = 1
$sql = "INSERT INTO produtos_car (id_produto, carrinho_p, quantidade) VALUES('$prod', '$id_carrinho', '1')";
}
$query = mysql_query($sql);
} $crio_carrinho = mysql_query("INSERT INTO carrinhos(carrinho_id, sessao_carrinho) VALUES('', '$sessao')");
$selcar = mysql_query("SELECT * FROM carrinhos WHERE sessao_carrinho='$sessao'") or die(mysql_error());
$arr = mysql_fetch_array($selcar);
$id_carrinho = $arr["carrinho_id"]; // Pego o id do carrinho em questão
$selp = mysql_query("SELECT * FROM produtos_car WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'") or die(mysql_error()); // Seleciono o produto desse carrinho
if(mysql_num_rows($selp) > 0) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento a quantidade em +1
$info = mysql_fetch_array($selp);
$qtde = $info["quantidade"];
$nova_qtde = $qtde + 1;
$sql = "UPDATE produtos_car SET quantidade='$nova_qtde' WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'";
}
else { // Se não existir, registro com quantidade = 1
$sql = "INSERT INTO produtos_car (id_produto, carrinho_p, quantidade) VALUES('$prod', '$id_carrinho', '1')";
}
$query = mysql_query($sql);
}
if($query) {
echo "Ok! Produto adicionado ao carrinho com sucesso!<br />";
echo "<a href='#'>Voltar às compras</a>";
}
else {
echo "O produto não pôde ser adicionado ao carrinho!<br />";
echo "<a href='#'>Voltar</a>";
}
?>
Você pode adaptar às suas necessidades
Abraços
>
Ae amigo,
Faça o seguinte.
você vai trabalhar com duas tabelas nesse caso. Uma que registra os ID's e quantidades dos produtos cadastrados em cada carrinho (produtos_car) e outra que registra os carrinhos de cada sessão (carrinhos). Ae você vai relacionar as duas.
IMPORTANTE: A tabela produtos_car NÃO contém as informações dos produtos cadastrados no site. Estas devem estar em outra tabela e o id do produto a ser adicionado deve ser passado via URL.
Copie e cole o seguinte código pra criar as tabelas SQL:
CREATE TABLE `carrinhos` (
`carrinho_id` int(15) NOT NULL auto_increment,
`sessao_carrinho` varchar(50) NOT NULL,
PRIMARY KEY (`carrinho_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
CREATE TABLE `produtos_car` (
`id_produto` int(15) NOT NULL,
`carrinho_p` int(15) NOT NULL,
`quantidade` int(15) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Agora utilize o seguinte código na página carrinho.php:
<?php
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 carrinhos WHERE sessao_carrinho='$sessao'") or die(mysql_error());
$numrowsc = mysql_num_rows($selc);
//Se existir, cadastro os produtos dentro desse carrinho
if($numrowsc > 0) {
$arr = mysql_fetch_array($selc);
$id_carrinho = $arr["carrinho_id"]; // Pego o id do carrinho em questão
$selp = mysql_query("SELECT * FROM produtos_car WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'") or die(mysql_error()); // Seleciono o produto desse carrinho
if(mysql_num_rows($selp) > 0) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento a quantidade em +1
$info = mysql_fetch_array($selp);
$qtde = $info["quantidade"];
$nova_qtde = $qtde + 1;
$sql = "UPDATE produtos_car SET quantidade='$nova_qtde' WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'";
}
else { // Se não existir, registro com quantidade = 1
$sql = "INSERT INTO produtos_car (id_produto, carrinho_p, quantidade) VALUES('$prod', '$id_carrinho', '1')";
}
$query = mysql_query($sql);
} $crio_carrinho = mysql_query("INSERT INTO carrinhos(carrinho_id, sessao_carrinho) VALUES('', '$sessao')");
$selcar = mysql_query("SELECT * FROM carrinhos WHERE sessao_carrinho='$sessao'") or die(mysql_error());
$arr = mysql_fetch_array($selcar);
$id_carrinho = $arr["carrinho_id"]; // Pego o id do carrinho em questão
$selp = mysql_query("SELECT * FROM produtos_car WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'") or die(mysql_error()); // Seleciono o produto desse carrinho
if(mysql_num_rows($selp) > 0) { // Verifico se já existe um produto igual registrado pra esse carrinho. Se existir, aumento a quantidade em +1
$info = mysql_fetch_array($selp);
$qtde = $info["quantidade"];
$nova_qtde = $qtde + 1;
$sql = "UPDATE produtos_car SET quantidade='$nova_qtde' WHERE id_produto='$prod' AND carrinho_p='$id_carrinho'";
}
else { // Se não existir, registro com quantidade = 1
$sql = "INSERT INTO produtos_car (id_produto, carrinho_p, quantidade) VALUES('$prod', '$id_carrinho', '1')";
}
$query = mysql_query($sql);
}
if($query) {
echo "Ok! Produto adicionado ao carrinho com sucesso!<br />";
echo "<a href='#'>Voltar às compras</a>";
}
else {
echo "O produto não pôde ser adicionado ao carrinho!<br />";
echo "<a href='#'>Voltar</a>";
}
?>
Você pode adaptar às suas necessidades
Abraços
xiiii agradeço a ajuda, mas isso de criar novas tabelas iria fazer com que tivesse que alterar todos os codigos ja existentes http://forum.imasters.com.br/public/style_emoticons/default/upset.gif eu colo aqui as minhas tabelas para veres se não da para usar como ta:
CREATE TABLE IF NOT EXISTS `carrinho` (
`id` int(11) NOT NULL auto_increment,
`cod` int(11) NOT NULL,
`quant` int(11) NOT NULL,
`sessao` varchar(64) NOT NULL,
PRIMARY KEY (`id`),
KEY `sessao` (`sessao`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=159 ;
CREATE TABLE IF NOT EXISTS `produtos` (
`id` int(11) NOT NULL auto_increment,
`nome` varchar(130) NOT NULL,
`img` varchar(36) NOT NULL,
`preco` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
sao estas as que estou a usar... todo o carrinho funciona mt bem, excepto que n altera o numero de produtos e em vez disso adiciona 2 ou mais iguais
Veja se assim resolve seu problema:
<?php
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 "Ok! Produto adicionado ao carrinho com sucesso!";
echo "<a href='#'>Voltar às compras</a>";
}
else {
echo "O produto não pôde ser adicionado ao carrinho!";
echo "<a href='#'>Voltar</a>";
}
?>
Falo>
Veja se assim resolve seu problema:
<?php
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 "Ok! Produto adicionado ao carrinho com sucesso!";
echo "<a href='#'>Voltar às compras</a>";
}
else {
echo "O produto não pôde ser adicionado ao carrinho!";
echo "<a href='#'>Voltar</a>";
}
?>
Falo
resolveu sim... deu um erro no botao voltar, mas eu ja arranjei :) mt mt obrigado... eu tenho ainda mais 2 duvidas que gostava de resolver... uma era meter os produtos no index.php a aparecerem em 4 colunas de 3 produtos cada, com a paginação em baixo e outra era em detalhes.php mostrar a imagem com marca de agua... será que podias ajudar-me a conseguir isso? vou colar os codigos para veres...
index.php
<?
session_start();
include('conexao.php');
?>
<html>
<body>
<center>
<img src='BannerLoja.png' border='0'><br>
<table cellpadding='5' cellspacing='1' width='800'>
<tr>
<td align='center'>
<?
// Faz o pedido à base de dados.
$produtos = mysql_query('SELECT * FROM produtos ORDER BY RAND()', $con);
while($produto = mysql_fetch_assoc($produtos)){
echo '<div>';
// Mostra a imagem e nome do produto.
echo '<br><img width=120 height=90 border=0 src="Imagens/'.$produto['img'].'"><br><b>'.$produto['nome'].'</b><br>';
// Mostra o preço.
echo '€ '.number_format($produto['preco'], 2, ',', '').'<br>';
// Mostra o link pra adicionar ao carrinho.
echo '<a href="carrinho.php?produto='.$produto['id'].'"><img src="BotAdicionar.png" border="0"></a><br>';
echo '<a href="verProdutos.php"><img src="BotCarrinho.png" border="0"></a></div>';
}
?>
</td>
</tr>
</table>
</body>
</html>
detalhes.php
<?
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>
<br>
<font size='3' color='#666666'>
<b>€</b> <? echo number_format($item['preco'], 2, ',', '') ?>
</td>
</tr>
<tr>
<td bgcolor='#99cc33' align='center'>
<a href="verProdutos.php"><img src="BotCarrinho.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>
<?
}}
?>
</body>
</html>
é isso aí acima... obrigado por tudo mais uma vez!
Ae parceiro,
Quanto a sua primeira dúvida, vou te passar a lógica:
Você cria uma div com um id que passe um width de, por exemplo, 800px para englobar toda a exibição de produtos. Ae você coloca, quando exibir os produtos, uma div que delimite um width de 200px por produto e coloque um float:left em cada uma dessas divs. Depois joga um LIMIT 12 na query SQL. Mais ou menos isso.
Não pude analisar seus códigos ainda pq estou ocupado agora...
Já a segunda, dê uma olhada nesses links:
http://codigofonte.uol.com.br/codigo/php/i...-marca-dagua%5D
http://clares.wordpress.com/2008/07/17/mar...gua-em-imagens/
Falo
>
Ae parceiro,
Quanto a sua primeira dúvida, vou te passar a lógica:
Você cria uma div com um id que passe um width de, por exemplo, 800px para englobar toda a exibição de produtos. Ae você coloca, quando exibir os produtos, uma div que delimite um width de 200px por produto e coloque um float:left em cada uma dessas divs. Depois joga um LIMIT 12 na query SQL. Mais ou menos isso.
Não pude analisar seus códigos ainda pq estou ocupado agora...
Já a segunda, dê uma olhada nesses links:
http://codigofonte.uol.com.br/codigo/php/i...-marca-dagua%5D
http://clares.wordpress.com/2008/07/17/mar...gua-em-imagens/
Falo
ja avancei com o codigo no index.php
<?
session_start();
include('conexao.php');
?>
<html>
<body>
<center>
<img src='BannerLoja.png' border='0'><br>
<table cellpadding='5' cellspacing='1' width='800'>
<tr>
<td align='center'>
<?
// Faz o pedido à base de dados.
$produtos = mysql_query('SELECT * FROM produtos ORDER BY RAND() LIMIT 12', $con);
while($produto = mysql_fetch_assoc($produtos)){
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><img width=120 height=90 border=0 src="Imagens/'.$produto['img'].'"><br><b>'.$produto['nome'].'</b><br>';
// Mostra o preço.
echo '€ '.number_format($produto['preco'], 2, ',', '').'<br>';
// Mostra o link pra adicionar ao carrinho.
echo '<a href="carrinho.php?produto='.$produto['id'].'"><img src="BotAdicionar.png" border="0"></a><br><br></div>';
}
?>
</td>
</tr>
</table>
<? echo '<hr size=1 width=800 color=green><a href="verProdutos.php"><img src="BotCarrinho.png" border="0"></a> <a href="finalizar.php"><img src="BotFinalizar.png" border="0"></a></div>'; ?>
</body>
</html>Amigo,
A paginação você tem buscar no google.
Existem vários sistemas de páginação por ae, inclusive aqui mesmo no fórum.
Falo
?>
A lógica seria mais ou menos essa.