-
Total de itens
31 -
Registro em
-
Última visita
Posts postados por Clayton
-
-
$total = 0;
if (count($_SESSION['shop']) == 0) {
echo '<tr><td colspan="9"><div class="#">O cesto de compras esta vazio!</td></tr>';
} else { -
Bom dia estou com problemas com o carrinho ,se eu colocar $preço =$linha['preço']; exibe o valor corretamente,mas se eu colocar o number_format abaixo, ele zera o resultado:
$preço = number_format((float) $linha['preço'] * $qtd, 2, ',', '.');
E o total dos produtos não está sendo feito, me disseram que tem que usar javascript , mas eu não conheço javascript, alguém pode ajudar?
<?php
include(dirname(__FILE__) . './funcao/conecta.php');
session_start();
if (!isset($_SESSION['shop'])) {
$_SESSION['shop'] = array();
}
if (isset($_GET['acao'])) { // adicionar produto
$id = isset($_GET['id']) ? intval($_GET['id']) : null;
if ($_GET['acao'] == 'add') {
if (!isset($_SESSION['shop'][$id])) {
$_SESSION['shop'][$id] = 1;
}
} elseif ($_GET['acao'] == 'del') { //REMOVER shop
if (isset($_SESSION['shop'][$id])) {
unset($_SESSION['shop'][$id]);
}
}
//ALTERAR QUANTIDADE
//Se existir $_POST['prod'] então começa..
if (isset($_POST['prod']))
if ($_GET['acao'] == 'atualizar') {
if (is_array($_POST['prod'])) {
foreach ($_POST['prod'] as $id => $qtd) {
$id = intval($id);
$qtd = intval($qtd);
if (!empty($qtd) || $qtd <> 0) {
$_SESSION['shop'][$id] = $qtd;
} else {
unset($_SESSION['shop'][$id]);
}
}
}
}
}
?>
<!doctype html>
<html>
<head>
<meta charset='utf8'>
<title>Seja Bem Vindo!</title>
<link rel="stylesheet" href="css/default.css">
</head>
<body>
<div><h2>Suas Compras Efetuadas:</h2>
<br>
<table border="1" width="100%">
<thead>
<tr>
<th width="10%">FOTO</th>
<th width="10%">NOME</th>
<th width="10%">DESCRIÇÃO</th>
<th width="10%">TAMANHO</th>
<th width="10%">COR</th>
<th width="10%">PREÇO</th>
<th width="10%">QTD.</th>
<th width="10%">SUBTOTAL</th>
<th width="10%">REMOVER</th>
</tr>
</thead>
<tr><td colspan="9">
<form action="?acao=atualizar" method="post">
<table><tfoot>
<tr>
<td><input type="submit" value="Atualizar"></td>
</tr><tr>
<td><a href="./index.php">Continuar Comprando</a></td>
</tr><tr>
<td><a href="./admin/finalizar.php">Finalizar Pedido</a></td>
</tfoot></table>
</form>
</td></tr>
<tbody>
<?php
$total = 0;
if (count($_SESSION['shop']) == 0) {
echo '<tr><td colspan="9"><div class="#">O cesto de compras esta vazio!</td></tr>';
} else {
$conn = new PDO("mysql:host=localhost;dbname=loja", "root", "");
foreach ($_SESSION['shop'] as $id => $qtd) {
$cart = $conn->prepare("SELECT * FROM produtos WHERE id=$id");
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();
while ($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preço = number_format((float) $linha['preço'] * $qtd, 2, ',', '.');
$sub = number_format((float) $linha['preço'] * $qtd, 2, ',', '.');
$sub = $linha['preço'] * $qtd;
$total += $preço;
$total = number_format($total, 2, ',', '.');
echo '<tr>
<td><img src = "' . $foto . ' " width = "100px"</td>
<td>' . $nome . '</td>
<td>' . $descricao . '</td>
<td>' . $tamanho . '</td>
<td>' . $cor . '</td>
<td>R$ ' . $preço . '</td>
<td><input type="text" size="3" name="prod[' . $id . ']" value="' . $qtd . '" /></td>
<td>R$ ' . $sub . '</td>
<td colspan = "9"><a href="?acao=del&id=' . $id . '"><img src="./imagens/remover.png" width="70" height="70" ></td>
</tr>';
}
}
}
?>
</table>
</div>
</body>
</html>
-
Caros amigos gostaria da ajuda de vocês pois estou com muita dificuldade para fazer meu carrinho de compras exibir o preço e calcular o total automaticamente, gostaria de ajuda
para poder resolver este problema. abaixo o código do carrinho:
<?php
session_start();
if(!isset($_SESSION['shop'])){
$_SESSION['shop'] = array();
}//adiciona produto
if(isset($_GET['acao'])){
if($_GET['acao'] == 'add'){
$id = intval($_GET['id']);
if(!isset($_SESSION['shop'][$id])){
$_SESSION['shop'][$id] = 1;
}
}
//REMOVER shop
if($_GET['acao'] == 'del'){
$id = intval($_GET['id']);
if(isset($_SESSION['shop'][$id])){
unset($_SESSION['shop'][$id]);
}
}//ALTERAR QUANTIDADE
//Se existir $_POST['prod'] então começa..
if( isset( $_POST['prod'] ) )if($_GET['acao'] == 'atualizar'){
if(is_array($_POST['prod'])){
foreach($_POST['prod'] as $id => $qtd){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd <> 0){
$_SESSION['shop'][$id] = $qtd;
}else{
unset($_SESSION['shop'][$id]);
}
}
}
}}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlinhas="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-utf8" />
<title>Seja Bem Vindo !</title>
</head>
<link rel="stylesheet" type="text/css" href="css/default.css" />
<body>
<head>
<div align = "center"><h2>Suas Compras Efetuadas:</h2>
<br>
<form action="shop.php?acao=up" method="post">
<table border="1" color = width="100%">
<tr>
<td width="10%"><strong>FOTO</strong></td>
<td width="10%"><strong>NOME</strong></td>
<td width="10%"><strong>DESCRIÇÃO</strong></td>
<td width="10%"><strong>TAMANHO</strong></td>
<td width="10%"><strong>COR</strong></td>
<td width="10%"><strong>PREÇO</strong></td>
<td width="10%"><strong>QTD.</strong></td>
<td width="10%"><strong>SUBTOTAL</strong></td>
<td width="10%"><strong>REMOVER</strong></td>
</tr>
</thead>
</br>
<form action="?acao=atualizar" method="post">
<tfoot>
<tr>
<td colspan="9"><input type="submit" value="Atualizar" /></td>
<tr>
<td colspan="9"><a href="./index.php">Continuar Comprando</a></td>
<tr>
<tr>
<td colspan="9"><a href="./admin/finalizar.php">Finalizar Pedido</a></td>
</tfoot>
<tbody>
<?php
$total = 0;
if(count($_SESSION['shop']) == 0){
echo '<tr><td colspan="9"><div class = "#" align ="center">O cesto de compras esta vazio ! </td></tr>';
}else{
foreach($_SESSION['shop'] as $id => $qtd){
$conn = new PDO("mysql:host=localhost;dbname=loja", "root", "");
$cart = $conn->prepare("SELECT * FROM `produtos` WHERE `id` = '$id' ");
$cart->execute(array());
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();while($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preço = number_format((float)$linha['preço'] * $qtd, 2, ',', '.');$sub = number_format((float)$linha['preço'] * $qtd, 2, ',', '.');
$total += $linha['preço'] * $qtd;
// $total = number_format($total, 2, ',', '.');
echo '<tr>';
echo '<td><img src = "'.$foto.' " width = "100px"</td>';
echo '<td>'.$nome.'</td>';
echo '<td>'.$descricao.'</td>';
echo '<td>'.$tamanho.'</td>';
echo '<td>'.$cor.'</td>';
echo '<td>R$ '.$preço.'</td>';
echo '<td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td>';
echo '<td>R$ '.$sub.'</td>';
echo '<td colspan = "9"><a href="?acao=del&id='.$id.'"><img src="./imagens/remover.png" width="70" height="70" ></td>';
echo '</tr>';
}echo '<tr>';
}
}?>
-
Muito obrigado , os erros acontecem , muito obrigado vou testar o seu código.
-
Boa tarde, eu tenho esses 2 códigos , o primeiro é do menu categorias, o segundo é a paginação,não estou conseguindo paginar os produtos da categoria:
quando clico na categoria exibe assim no browser:
http://127.0.0.1:8888/loja/index.php?idCat=3
quando clico no botao da paginaçao:
http://127.0.0.1:8888/loja/index.php?pg=2 ou seja não avanca os produtos da categoria, peço ajuda para resolver este problema.aqui os códigos:
Menu das categorias
<?php
require_once ('./funcao/conecta.php');
$conn = conecta();
$sql = $conn->prepare("SELECT * FROM `loja`.`categorias` ORDER BY `nome_categoria` ASC");
$sql->execute(array());
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
while($linha = $sql->fetch()) {
$categoriaid = $linha['id_categoria'];
$nomecategoria = $linha['nome_categoria'];
echo'<li>';
echo'<a href = "index.php?idCat=' . $categoriaid . '">'.$nomecategoria.'</a>'; //aqui quero linkar os produtos.
echo'</li>';
}
echo'</div>';
echo '</div id="link"><div>';
echo'</div>';
?>código da paginação:
<?php
@$idCat = $_GET['idCat']; // Estou pegando o ID da categoria. (que esta na URL e foi passada no link da página anterior)
require_once ('./funcao/conecta.php');
$conn = conecta();
echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
echo'<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />';
echo'<table width="100%" height="0" cellspacing="60" cellpadding="60">';
$i=1;
$limite = 10;
$pg = (isset($_GET['pg'])) ? (int)$_GET['pg'] : 1 ;
$inicio = ($pg * $limite) - $limite;
$busca = $conn->prepare("SELECT * FROM `produtos` WHERE `id_categoria` = " . $idCat . " ORDER BY `id` LIMIT $inicio,$limite"); //Aqui eu filtro os produtos de determinada categoria
$busca->execute(array());
$busca->setFetchMode(PDO::FETCH_ASSOC);
$busca->execute();
echo '<div id="Box">';
while($linha = $busca->fetch(PDO::FETCH_ASSOC)){
echo '<td align = "center"><h2>'.$linha['nome'].'</h2></br>';
echo '<div align="loja"><img src='.$linha['foto'].'></a><a base64_encode href="./shop.php?acao=add&id='.$linha['id'].'"></br></br>';
echo '<p align = "center"><button type="button" name="" value="" class="quero">Eu Quero!</button></p>';if( $i%5 == 0 ) {
echo "</tr><tr>";
}
$i++;
}
echo'<div class="clear"> </div>';
echo "</tr></table>";
//seleciona o total de registros
$sql_Total = 'SELECT * FROM `produtos` ';
try{
$query_Total = $conn->prepare($sql_Total);
$query_Total->execute();
$query_result = $query_Total->fetchAll(PDO::FETCH_ASSOC);
//conta quantos registros tem no banco de dados
$query_count = $query_Total->rowCount(PDO::FETCH_ASSOC);
//calcula o total de paginas a serem exibidas
$qtdPag = ceil($query_count/$limite);
}catch(PDOexception $error_Total){
echo 'Erro ao retornar os Dados. '.$error_Total->getMessage();
}
//Cria os links para navega��o das paginasecho ' <div class = "paginacao"><div align = "center" ><a href="?pg=1">Primeira Página</a> ';
if($qtdPag > 1 && $pg<= $qtdPag){
for($i=1; $i <= $qtdPag; $i++){if($i == $pg){
echo $i;
}else{
echo "<a href='index.php?pg=$i'>".$i."</a>";
}}
}
echo " <a href=\"?pg=$qtdPag\">Última Página</a> ";
?>
Exibir produtos da Categoria com paginação
em PHP
Postado
Olha fiz o que você falou , só que o problema é o seguinte , quando eu escolho uma categoria aparece no browser:
http://127.0.0.1:8888/loja/index.php?idCat=3 (seleciona os produtos da categoria 3 corretamente, agora se clico em algum outro botão da paginação acontece isso:
http://127.0.0.1:8888/loja/index.php?pg=2 (ou seja ele não avanca os proximos produtos da categoria , como eu faço para ele dar continuidade na paginaçao a exibicao dos produtos da categoria. eis aqui o bd:
CREATE DATABASE IF NOT EXISTS `loja`;
USE `loja`;
#
# Table structure for table 'categorias'
#
DROP TABLE IF EXISTS `categorias`;
CREATE TABLE `categorias` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_categoria` VARCHAR(255),
`nome_categoria` VARCHAR(255),
INDEX (`id_categoria`),
PRIMARY KEY (`id`)
) ENGINE=myisam DEFAULT CHARSET=utf8;
SET autocommit=1;
#
# Dumping data for table 'categorias'
#
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (1, '1', 'Masculino');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (2, '2', 'Feminino');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (3, '3', 'Acessorios');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (4, '4', 'Roupa_Intima');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (5, '5', 'Linha Saude');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (6, '6', 'Cosmeticos');
INSERT INTO `categorias` (`id`, `id_categoria`, `nome_categoria`) VALUES (7, '7', 'Linha Fitness');
# 7 records
#
# Table structure for table 'produtos'
#
DROP TABLE IF EXISTS `produtos`;
CREATE TABLE `produtos` (
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_categoria` VARCHAR(255),
`foto` VARCHAR(255),
`nome` VARCHAR(255),
`descricao` LONGTEXT,
`preço` VARCHAR(255),
`tamanho` VARCHAR(255),
`cor` VARCHAR(255),
INDEX (`id_categoria`),
PRIMARY KEY (`id`)
) ENGINE=myisam DEFAULT CHARSET=utf8;
SET autocommit=1;
#
# Dumping data for table 'produtos'
#
INSERT INTO `produtos` (`id`, `id_categoria`, `foto`, `nome`, `descricao`, `preço`, `tamanho`, `cor`) VALUES (1, '2', 'fotos/aconchego.png', 'ACONCHEGO', 'Material sintético de alta qualidade. Solado em Poliuretano de 3 cm. Tecnologia para quem quer pisar com maciez e conforto. Tiras em sintético com cetim.', 'R$ 182,00', '33 ao 40', 'Preto,Vermelho,Marrom');
INSERT INTO `produtos` (`id`, `id_categoria`, `foto`, `nome`, `descricao`, `preço`, `tamanho`, `cor`) VALUES (2, '2', 'fotos/adele.png', 'ADELE', 'Em material sintetico de alta qualidade e com detalhes trabalhados. Forro touch em Poliuretano. Fivelas douradas e palmilhas forradas.', 'R$ 233,00', '33 ao 39', 'Cor única');
INSERT INTO `produtos` (`id`, `id_categoria`, `foto`, `nome`, `descricao`, `preço`, `tamanho`, `cor`) VALUES (3, '2', 'fotos/afrika.png', 'AFRIKA', 'Com material sintetico estampado com o tema onça.Forro interno em touch,com espuma na parte traseira e palmilhas forradas.Solado em TR antiderrapante,confortavel e leve, com salto dourado de 2cm.', 'R$ 198,00', '33 ao 39', 'Cor única');
Será que o banco está modelado errado ?
eu só preciso que ele avance o resultado dos produtos corretamente!