Chamada de método
Opa... um help!!!
A classe abaixo só executa o primeiro registro do db. O while que tem dentro do métodoload_vitrini() é executado apenas uma vez e, consequentemente, só afeta o primeiro registro. Como resolvo isso? Antes eu usava as saídas de função com echo, daí disseram que é errado, então usei return, mas não estou sabendo trabalhar com ele.
Estou chamando o método assim:
$vitrini = new Vitrini();
$vitrini->andar = 1;
$vitrini->vitrini = 1;
echo $vitrini->load_vitrini();
Segue a classe:
<?php
class Vitrini{
public $andar;
public $vitrini;
function load_vitrini(){
$query = mysql_query('SELECT * FROM prod_vitrini
WHERE prod_andar='.$this->andar.'
AND prod_vitrini='.$this->vitrini.'
ORDER BY prod_order ASC
LIMIT 3');
while($array = mysql_fetch_array($query)){
$codigo = $array['prod_cod'];
$quantidade = $array['prod_quantidade'];
$dataFinal = $array['prod_fim'];
$cupom = $array['prod_cupom'];
$novoCupom = '1';
$vendido = $array['prod_vendido'];
$retorno = $array['prod_retorno'];
$urlAtivo = $array['prod_urlAtivo'];
$urlInativo = $array['prod_urlInativo'];
$urlFundo = 'andar-1/vitrinis/images/background.jpg';
$update = 'UPDATE `vitrinidigital`.`prod_vitrini`
SET `prod_cupom` = 1,
`prod_retorno` = NULL
WHERE `prod_vitrini`.`prod_cod` ='. $codigo.'';
//verifica se a validade do anúncio está vencida
if(date('Y-m-d') > $dataFinal){
$url = $urlFundo;
return $url;
}
//verifica se o produto esgotado foi marcado como vendido
elseif($cupom == 0 && $vendido == 1){
$url = $urlInativo;
return $url;
}
//verifica se o produto esgotado está dentro do prazo de inatividade
elseif($cupom == 0 && $vendido == 0){
if(date('Y-m-d H:i:s') < $retorno){
$url = $urlInativo;
return $url;
}
elseif(date('Y-m-d H:i:s') > $retorno){
mysql_query($update);
$url = $urlAtivo;
return $url;
return $novoCupom;
}
}
//retorna o anúncio
else{
$url = $urlAtivo;
return $url;
return $cupom;
}
}
}
}
?>Discussão (5)
Carregando comentários...