Este script só funcionará com PHP 5.0 ou superior.
Esta é uma classe para manipular carrinhos de compras usando a extensão MySQLi e a classe MySQLiConnection.
carrinho.php - Classe Carrinho
<?php
#############################################
# #
# Autor: Roberto Beraldo Chaiben (Beraldo) #
# E-Mail: rbchaiben@gmail.com #
# #
#############################################
/*
Classe para manipulação de carrinhos de compras, com funções para adicionar produtos, remover produtos, alterar a quantidade de cada produto e cálculo do valor total da compra.
*/
class Carrinho
{
/*
Função AdicionarProduto($id)
Adiciona ao carrinho o produto cujo id na tabela produtos seja $id, passado como parâmetro da função.
Se o id for inválido (NULL ou ''), axibe um alerta e retorna FALSE.
Se o produto já estiver no carrinho, exibe um alerta e retorna FALSE.
*/
public function AdicionarProduto($id)
{
if ($id == NULL || $id == '' || $id == 0)
{
echo "
<script type=\"text/javascript\">
alert ('O id do produto deve ser inteiro e maior que zero');
</script>";
return false;
}
/*
A função ArrayCarrinho() retorna um array com os id's dos produtos e suas respectivas chaves no array $_SESSION['carrinho'].
*/
$aCar = ArrayCarrinho();
if (in_array ($id, $aCar))
{
echo "
<script type=\"text/javascript\">
alert ('O produto que você selecionou já está em seu carrinho de compras.\\n Para adicionar outra unidade, altere a quantidade do produro.');
</script>
";
return false;
}
$my = new MySQLiConnection();
$sql = $my->query ("Select * From produtos Where id = ".$id);
if ($sql->num_rows == 0)
{
echo "
<script type=\"text/javascript\">
alert ('Não foi encontrado um produto com esse id.');
</script>";
return false;
}
$f = $sql->fetch_object();
$cod = $f->id;
$nome = $f->nome;
$preço = $f->preço;
$desc = $f->descricao;
//próxima chave de $_SESSION['carrinho']:
$k = isset ($_SESSION['carrinho']) ? count ($_SESSION['carrinho']) : 0;
$_SESSION['carrinho'][$k]['id'] = $cod;
$_SESSION['carrinho'][$k]['nome'] = $nome;
$_SESSION['carrinho'][$k]['preço'] = $preço;
$_SESSION['carrinho'][$k]['qtde'] = 1;
$_SESSION['total'] = $this->Total();
$_SESSION['carrinho'][$k]['descricao'] = $desc;
//ordena $_SESSION['carrinho'] por nome de produto:
sort ($_SESSION['carrinho'], SORT_STRING);
}
/*
Função RemoverProduto($id)
Remove de $_SESSION['carrinho'] o produto cujo id na tabela produtos é $id, passado como parâmetro da função.
Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE.
*/
public function RemoverProduto($id)
{
if ($id == NULL || $id == '' || $id == 0)
{
echo "
<script type=\"text/javascript\">
alert ('O id do produto deve ser inteiro e maior que zero');
</script>";
return false;
}
// encontra a chave cujo id é o passado na função e o coloca na variável $k
$aCar = ArrayCarrinho();
$k = array_search ($id, $aCar);
unset ($_SESSION['carrinho'][$k]);
if (count ($_SESSION['carrinho']))//se ainda houver produtos no carrinho
{
//organiza as chaves do array desde zero até (count ($_SESSION['carrinho']) - 1)
$car_keys = range (0, (count ($_SESSION['carrinho']) - 1));
$_SESSION['carrinho'] = array_combine ($car_keys, $_SESSION['carrinho']);
}
$_SESSION['total'] = $this->Total();
}
/*
Função AlterarQuantidade($id, $n_qtde)
Altera a quantidade de unidades do produto cujo id é $id para $n_qtde.
Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE.
Se $n_qtde for maior que zero, altera a quantidade do produto; se for igual ou menor que zero, remove-o do carrinho.
*/
public function AlterarQuantidade($id, $n_qtde)
{
if ($id == NULL || $id == '' || $id == 0)
{
echo "
<script type=\"text/javascript\">
alert ('O id do produto deve ser inteiro e maior que zero');
</script>";
return false;
}
if ($n_qtde > 0)
{
// encontra a chave cujo id é o passado na função e o coloca na variável $k
$aCar = ArrayCarrinho();
$k = array_search ($id, $aCar);
$_SESSION['carrinho'][$k]['qtde'] = $n_qtde;
$_SESSION['total'] = $this->Total();
}
else
$this->RemoverProduto($id);
}
public function Total()
{
$carro = isset($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();
// inicia a variável $total:
$total = 0;
for ($t = 0; $t < count ($carro); $t++)
{
// multiplica o preço do produto por sua respectiva quantidade
$total += $carro[$t]['preço'] * $carro[$t]['qtde'];
}
// retorna o total já formatado na forma brasileira
return number_format ($total, 2, ",", "");
}
}
Pergunta
Beraldo
Este script só funcionará com PHP 5.0 ou superior.
Esta é uma classe para manipular carrinhos de compras usando a extensão MySQLi e a classe MySQLiConnection.
carrinho.php - Classe Carrinho
<?php ############################################# # # # Autor: Roberto Beraldo Chaiben (Beraldo) # # E-Mail: rbchaiben@gmail.com # # # ############################################# /* Classe para manipulação de carrinhos de compras, com funções para adicionar produtos, remover produtos, alterar a quantidade de cada produto e cálculo do valor total da compra. */ class Carrinho { /* Função AdicionarProduto($id) Adiciona ao carrinho o produto cujo id na tabela produtos seja $id, passado como parâmetro da função. Se o id for inválido (NULL ou ''), axibe um alerta e retorna FALSE. Se o produto já estiver no carrinho, exibe um alerta e retorna FALSE. */ public function AdicionarProduto($id) { if ($id == NULL || $id == '' || $id == 0) { echo " <script type=\"text/javascript\"> alert ('O id do produto deve ser inteiro e maior que zero'); </script>"; return false; } /* A função ArrayCarrinho() retorna um array com os id's dos produtos e suas respectivas chaves no array $_SESSION['carrinho']. */ $aCar = ArrayCarrinho(); if (in_array ($id, $aCar)) { echo " <script type=\"text/javascript\"> alert ('O produto que você selecionou já está em seu carrinho de compras.\\n Para adicionar outra unidade, altere a quantidade do produro.'); </script> "; return false; } $my = new MySQLiConnection(); $sql = $my->query ("Select * From produtos Where id = ".$id); if ($sql->num_rows == 0) { echo " <script type=\"text/javascript\"> alert ('Não foi encontrado um produto com esse id.'); </script>"; return false; } $f = $sql->fetch_object(); $cod = $f->id; $nome = $f->nome; $preço = $f->preço; $desc = $f->descricao; //próxima chave de $_SESSION['carrinho']: $k = isset ($_SESSION['carrinho']) ? count ($_SESSION['carrinho']) : 0; $_SESSION['carrinho'][$k]['id'] = $cod; $_SESSION['carrinho'][$k]['nome'] = $nome; $_SESSION['carrinho'][$k]['preço'] = $preço; $_SESSION['carrinho'][$k]['qtde'] = 1; $_SESSION['total'] = $this->Total(); $_SESSION['carrinho'][$k]['descricao'] = $desc; //ordena $_SESSION['carrinho'] por nome de produto: sort ($_SESSION['carrinho'], SORT_STRING); } /* Função RemoverProduto($id) Remove de $_SESSION['carrinho'] o produto cujo id na tabela produtos é $id, passado como parâmetro da função. Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE. */ public function RemoverProduto($id) { if ($id == NULL || $id == '' || $id == 0) { echo " <script type=\"text/javascript\"> alert ('O id do produto deve ser inteiro e maior que zero'); </script>"; return false; } // encontra a chave cujo id é o passado na função e o coloca na variável $k $aCar = ArrayCarrinho(); $k = array_search ($id, $aCar); unset ($_SESSION['carrinho'][$k]); if (count ($_SESSION['carrinho']))//se ainda houver produtos no carrinho { //organiza as chaves do array desde zero até (count ($_SESSION['carrinho']) - 1) $car_keys = range (0, (count ($_SESSION['carrinho']) - 1)); $_SESSION['carrinho'] = array_combine ($car_keys, $_SESSION['carrinho']); } $_SESSION['total'] = $this->Total(); } /* Função AlterarQuantidade($id, $n_qtde) Altera a quantidade de unidades do produto cujo id é $id para $n_qtde. Se o id for inválido (NULL ou ''), exibe um alerta e retorna FALSE. Se $n_qtde for maior que zero, altera a quantidade do produto; se for igual ou menor que zero, remove-o do carrinho. */ public function AlterarQuantidade($id, $n_qtde) { if ($id == NULL || $id == '' || $id == 0) { echo " <script type=\"text/javascript\"> alert ('O id do produto deve ser inteiro e maior que zero'); </script>"; return false; } if ($n_qtde > 0) { // encontra a chave cujo id é o passado na função e o coloca na variável $k $aCar = ArrayCarrinho(); $k = array_search ($id, $aCar); $_SESSION['carrinho'][$k]['qtde'] = $n_qtde; $_SESSION['total'] = $this->Total(); } else $this->RemoverProduto($id); } public function Total() { $carro = isset($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array(); // inicia a variável $total: $total = 0; for ($t = 0; $t < count ($carro); $t++) { // multiplica o preço do produto por sua respectiva quantidade $total += $carro[$t]['preço'] * $carro[$t]['qtde']; } // retorna o total já formatado na forma brasileira return number_format ($total, 2, ",", ""); } }array_carrinho.php - Função Array_Carrinho()<?php /* Retorna um array com os pares chave => vaor da variável $_SESSION['carrinho'] Exemplo: $_SESSION['carrinho'][0]['id'] = 4 $_SESSION['carrinho'][1]['id'] = 10 $_SESSION['carrinho'][2]['id'] = 2 $x = ArrayCarrinho(); print_r ($x); [0] => 4 [1] => 10 [2] => 2 */ function ArrayCarrinho() { if (!isset($_SESSION['carrinho']) || !is_array($_SESSION['carrinho']) || (count ($_SESSION['carrinho']) == 0)) return array(); $cods = array(); $carro = isset($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array(); foreach ($carro as $k => $v) { $cods[$k] = $v['id']; } return $cods; } ?>O download do sistema completo pode ser feito neste link:
https://www.scriptbrasil.com.br/?class=2.3&...egoria=V%E1rios
[]'s
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.