<?php
/*
Classe TCarrinho
*/
class TCarrinho {
var $item_codigo = array();
var $item_quantidade = array();
var $item_lista = array();
/*
ObtemPosicao
Este metodo obtem a posicao de um item mediante ao seu codigo, retornando um valor booleano e gravando a posicao na variavel de referencia $posicao, caso o codigo do item esteja no carrinho.
*/
function ObtemPosicao($codigo,&$posicao){
//Percorrendo o vetor
for($i=0;$i<count($this->item_codigo);$i++) {
if ($this->item_codigo[$i] == $codigo) {
$posicao = $i;
return TRUE;
}
}
}/* ObtemPosicao() */
/*
ObtemPreco
Este metodo obtem o preço por unidade do produto tendo em mãos o codigo dele.
*/
function ObtemPreco($codigo){
$Sql = mysql_query("select preço from produtos where id = $codigo");
list($preco_uni) = mysql_fetch_row($Sql);
return $preco_uni;
//return mysql_result($sql,0,0);
}/* ObtemPreco() *
/*
AdicinarItem
Este metodo adiciona um item no carrinho
*/
function AdicionarItem($codigo,$quantidade,$lista)
{
//Inicializando parametro
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if (!$achou){
$this->item_codigo[] = $codigo;
$this->item_quantidade[] = $quantidade;
$this->item_lista[] = $lista;
}
} /* AdicionarItem() */
/*
RemoverItem
Este metodo remove um item do carrinho de compra, passando o codigo do produto
*/
function RemoverItem($codigo)
{
//Inicializando parametro
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if ($achou){
//Removendo o elemento do vetor
array_splice($this->item_codigo, $posicao, 1);
array_splice($this->item_quantidade, $posicao, 1);
}
} /* RemoveItem() */
/*
QuantosItens
Este metodo retorna a quantidade de itens incluidas no carrinho de compras
*/
function QuantosItens() {
return count($this->item_quantidade);
} /* QuantosItens() */
/*
ExcluirTodosItens
Este metodo retira todos os itens contidos no carrinho de compras
*/
function ExcluirTodosItens(){
$this->item_quantidade = null;
$this->item_codigo = null;
} /* ExcluirTodosItens() */
/*
QuerySQL_ObtemListaDeItens
Este metodo gera uma parte do codigo SQL que sera usado para buscar os dados
do carrinho de compra (id, NOME e PREÇO). O comando SQL final tera como finalidade
de buscar no banco de dados apenas os dados dos itens incluidos no carrinho.
*/
function QuerySQL_ObtemListaDeItens(){
$itens = "where ";
$STR = "";
if ($this->QuantosItens()>0) {
$fixo = " id =";
for ($i=0;$i<$this->QuantosItens();$i++){
$STR = $STR . $fixo . " " . $this->item_codigo[$i];
if ($i+1<$this->QuantosItens()) {
$STR = $STR . " or ";
}
}
}
if (!$STR == "") {
return $itens . $STR;
}else{
//Caso não exista nenhum item no carrinho o codigo final SQL, procurara por um item que não existe na tabela de produtos, neste caso -1.
return "where id = -1";
}
} /* QuerySQL_ObtemListaDeItens() */
/*
ObtemNovoPrecoItem
Este metodo obtem o novo preço do ítem baseado no preço calculado antes do carrinho
*/
function ObtemListaItem($codigo){
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if ($achou) {
return $this->item_lista[$posicao];
}else{
return "erro ao obter Novo Preço do item";
}
} /* ObtemNovoPrecoItem() */
/*
ObtemQuantidadeItem
Este metodo obtem a quantidade de um Item
*/
function ObtemQuantidadeItem($codigo){
$posicao = -1;
$achou = $this->ObtemPosicao($codigo,$posicao);
if ($achou) {
return $this->item_quantidade[$posicao];
}else{
return "erro ao obter quantidade do item";
}
} /* ObtemQuantidaItem() */
/*
ObtemSubTotalDeUmItem
Este metodo retorna o subtotal de um item (QUANTIDADE * VALOR UNITARIO)
*/
function ObtemSubTotalDeUmItem($id,$preço){
$posicao = -1;
$achou = $this->ObtemPosicao($id,$posicao);
if ($achou) {
return ($this->item_quantidade[$posicao]*$preço);
}else{
return "erro ao obter sub total do item";
}
} /* ObtemSubTotalDeUmItem() */
/*
AtualizarCarrinho
Este metodo coleta todos as variaveis enviadas pelo FORMULARO (method="POST")
e atualiza as quantidades dos itens.
*/
function AtualizarCarrinho(&$VAR_ENVIADAS_PELO_BROWSER){
//Percorrendo a lista de itens e atualizando suas quantidades
for ($i=0;$i<$this->QuantosItens();$i++){
$this->item_quantidade[$i] = $VAR_ENVIADAS_PELO_BROWSER[$this->item_codigo[$i]];
}
} /* AtualizarCarrinho() */
} /* Classe TCarrinho */
?>
Pergunta
Carlos Rocha
Pessoal.
Tenho um carrinho de compras simples.
Gostaria de colocar um botão para adicionar uma unidade de todos os produtos de uma só vez no carrinho.
CVomo eu faço?
carrinho.php
TCarrinho.phpLink para o comentário
Compartilhar em outros sites
2 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.