problema com phpoo
Olá pessoal, eu denovo. Agora estou com um problema numa classe, peguei essa classe para entender como funciona phpoo e talz..., mas tow apanhando aqui.
A classe é essa: Carrinho de Compras sem BD do Rafael Salvioni.
Tow tendo problemas nas seguintes coisas, não sei se estou pegando as informações do jeito na teste.php nunca mechi com phpoo. Qdo consegui fazer imprimir as informações na tela onde teria que aparecer escrito "teste" soh aparece "t". e msm adicionando os 4 itens que estão nos links da minha pagina teste.php, soh imprime 1 item na tela e de maneira errada.
Agradeço a quem puder me ajudar ^^
Classe > Carrinho.php
CODE
<?php/*
********************************************************************************
*******************
CLASSE CARRINHO DE COMPRAS
AUTOR: RAFAEL M. SALVIONI
DATA: 11/06/2005
DÚVIDAS, SUGESTÔES, CRÍTICAS, ELOGIOS, BUGS: rafsalvioni@bol.com.br
---------------------------------------------------------------------------------------------------
* Função CarrinhoDeCompras
É a função construtora da classe. Verifica se existe uma variável de sessão "Carrinho". Se não
existir, ela cria, se existir ela a referencia com a váriavel "Itens".
---------------------------------------------------------------------------------------------------
* Função AdicionarItem
bool AdicionarItem(int Codigo, string Descricao, double Valor, int Qtde)
Adiciona um item ao carrinho. Retorna true se a adição for concluída e false caso contrário.
Não adiciona o item caso já exista outro item com o código informado.
---------------------------------------------------------------------------------------------------
* Função ExcluirItem
bool ExcluirItem(int Codigo)
Exclui um item do carrinho. Retorna true se a exclusão for concluída e false caso contrário.
---------------------------------------------------------------------------------------------------
* Função EsvaziarCarrinho
void EsvaziarCarrinho()
Esvazia o carrinho de compras.
---------------------------------------------------------------------------------------------------
* Função AlterarItem
bool AlterarItem(int Codigo, string Campo, mixed Valor)
Altera um item especificado pelo argumento "Codigo". O atributo "Campo" deve conter uma das seguintes
strings: Descricao, Valor, Qtde. O argumento "Valor" é o novo valor que será armazenado na
matriz de índice especificado em "Campo". Retorna true se a alteração for concluída e false caso
contrário.
---------------------------------------------------------------------------------------------------
* Função ListarItens
array ListarItens()
Retorna um array associativo contendo os seguintes indices: Codigo, Descricao, Valor, Qtde e
SubTotal. Semelhante a função mysql_fetch_assoc(). Retorna false caso não existam mais itens.
---------------------------------------------------------------------------------------------------
* Função ExibirItem
array Exibir(int Codigo)
Retorna um array associativo igual a função acima, com a diferença de retornar apenas o item
especificado pelo argumento "Codigo". Retorna false caso não exista um item com o código
infromado.
---------------------------------------------------------------------------------------------------
* Função ValorCompra
double ValorCompra()
Retorna o valor total da "compra", o total a ser pago.
---------------------------------------------------------------------------------------------------
* Função TotalItens
int TotalItens()
Retorna o total de itens contidos no carrinho.
---------------------------------------------------------------------------------------------------
* Função TotalPecas
int TotalPecas()
Retorna a soma da quantidades de todos os itens constantes no carrinho.
---------------------------------------------------------------------------------------------------
################################################################################
###################
OBSERVAÇÕES: #
- CLASSE CONSTRUÍDA E TESTADA NO PHP 4.3.11; #
- UTILIZE A CLASSE SOMENTE QANDO UMA SESSÃO FOR ABERTA. #
################################################################################
###################
********************************************************************************
*******************
*/
session_start();
class CarrinhoDeCompras{
var $Itens,$Lista;
function CarrinhoDeCompras()
{
if (!isset($_SESSION["Carrinho"])) {
session_register("Carrinho");
settype($_SESSION["Carrinho"], "array");
}
settype($this->Itens,"array");
settype($this->Lista,"array");
$this->Itens = $_SESSION["Carrinho"];
$this->Itens = &$_SESSION["Carrinho"];
$this->Lista = $this->Itens;
}
function AdicionarItem($Codigo, $Descricao, $Valor, $Qtde)
{
if (!array_key_exists($Codigo, $this->Itens)) {
$this->Itens[$Codigo] = array(
"Codigo" => $Codigo,
"Descricao" => $Descricao,
"Valor" => $Valor,
"Qtde" => $Qtde
);
ksort($this->Itens);
$this->Lista = $this->Itens;
return array_key_exists($Codigo, $this->Itens);
} else {
return false;
}
}
function ExcluirItem($Codigo)
{
if (array_key_exists($Codigo, $this->Itens)) {
unset($this->Itens[$Codigo]);
ksort($this->Itens);
$this->Lista = $this->Itens;
return !array_key_exists($Codigo, $this->Itens);
} else {
return false;
}
}
function EsvaziarCarrinho()
{
$this->Itens = null;
settype($this->Itens,"array");
settype($this->Lista,"array");
$this->Lista = $this->Itens;
}
function AlterarItem($Codigo, $Campo, $Valor)
{
if (array_key_exists($Codigo, $this->Itens) and ereg("(Descricao|Valor|Qtde)", $Campo)) {
$this->Itens[$Codigo][$Campo] = $Valor;
$this->Lista[$Codigo] = $this->Itens[$Codigo];
return true;
} else {
return false;
}
}
function ListarItens()
{
if (count($this->Lista)>0) {
$Item = array_shift($this->Lista);
$Item["SubTotal"] = ($Item["Valor"] * $Item["Qtde"]);
return $Item;
} else {
return false;
}
}
function ExibirItem($Codigo)
{
if (array_key_exists($Codigo, $this->Itens)) {
$Item = $this->Itens[$Codigo];
$Item["SubTotal"] = ($Item["Valor"] * $Item["Qtde"]);
return $Item;
} else {
return false;
}
}
function ValorCompra()
{
$Soma = 0;
foreach ($this->Itens as $Codigo => $Valor) {
$Soma += ($this->Itens[$Codigo]["Valor"] * $this->Itens[$Codigo]["Qtde"]);
}
return (double)$Soma;
}
function TotalItens()
{
return count($this->Itens);
}
function TotalPecas()
{
$Soma = 0;
foreach ($this->Itens as $Codigo => $Valor) {
$Soma += $this->Itens[$Codigo]["Qtde"];
}
return $Soma;
}
}
?>
teste.php
CODE
<?phpinclude ("classe.carrinho.php");
session_start();
$op=$_GET['op'];
$MeuCarrinho = new CarrinhoDeCompras();
?>
<?php
if (!empty($op)){
switch ($op) {
case "adicionar":
if (!empty($prod)){
$MeuCarrinho->AdicionarItem($prod,$desc,$valor,$qtde);
}
break;
case "excluir":
$MeuCarrinho->RemoverItem($id_prod);
break;
/*
case "atualizar":
$MeuCarrinho->AtualizarCarrinho($HTTP_POST_VARS);
break;
*/
}
}
?>
<html>
<head>
<title>lala</title>
</head>
<body>
<a href="teste.php?op=adicionar∏=1&desc=teste1&valor=51&qtde=1">teste1</a>
<a href="teste.php?op=adicionar∏=2&desc=teste2&valor=52&qtde=2">teste2</a>
<a href="teste.php?op=adicionar∏=3&desc=teste3&valor=53&qtde=3">teste3</a>
<a href="teste.php?op=adicionar∏=4&desc=teste4&valor=54&qtde=4">teste4</a>
<br />
<br />
<br />
<br />
<?php
$teste=$MeuCarrinho->ListarItens();
//print_r($teste);
for($i=0;$i<count($MeuCarrinho->ListarItens());$i++) {
print_r ($teste["Codigo"][$i]);
echo"<br>$i<br>";
print_r ($teste["Descricao"][$i]);
}
?>
</body>
</html>Discussão (1)
Carregando comentários...