Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elnata COsta

Erro em foreach!

Recommended Posts

Seguinte pessoal estou fazendo um módulo usando php com classes e o meu código esta o seguinte:

 

Fidelidade.php:

<?php
class Fidelidade extends CodonModule
{
	
	
	public function index()
	{
	if(!Auth::LoggedIn()) {
            $this->set('message', 'Você precisa estar logado para acessar a fidelidade!');
            $this->render('core_error.tpl');
            return;
            }
             switch($this->post->action){
            case 'comprar':
                $this->comprar();
                break;
            case 'EnviardePresente':
                $this->EnviardePresente();
                break;
           default:
                $this->platium();
        }
        return;
        }
		
		
 	public function getAllPlans()
	{
	
	$this->set('planos_comprados', Fidelidade::getPilotPlanPlatium());
        $this->render('Fidelidade/index.tpl');
	
	}
	
	
	
		
	public function platium()
	{
		 $this->show('Fidelidade/platium.tpl');
		 $this->set('pilotcode', PilotData::GetPilotCode(Auth::$userinfo->code, Auth::$userinfo->pilotid));
        	 $this->set('Platium', Fidelidade::getCompredPlatium(Auth::$userinfo->code, Auth::$userinfo->pilotid));  	


	}
	
	
	public function master()
	{
		$this->render('Fidelidade/master.tpl');
	}
	public function gold()
	{
		$this->render('Fidelidade/gold.tpl');
	}
}

 

Fidelidade.class.php:

 

<?php

class Fidelidade extends CodonData
{

	
	
	 public static function getCompredPlatium($pid) {
        if(Auth::$userinfo->pilotid != $pid){
            throw new Exception("Você não pode acessar a páginda <strong>Fidelidade</strong>, você precisa ser um membro para acessar esta função!");
        }
         $query = "SELECT *
                FROM   `".TABLE_PREFIX."shopping_merco`
                WHERE `comprado_por`='$pid'
                AND `ativo`='1'
                AND `plano`='platium'
                ORDER BY `data_contratacao` ASC";
               

        $results = DB::get_results($query);
        
        $code = DB::errno();
        if ($code != 0){
            $message = DB::error();
            throw new Exception($message, $code);
        }
        
        return $results;
    }
	
}

 

platium.tpl:

 


<?php 

foreach($Platium as $compred){  
?>

<a href="javascript:void(0)" class="btn btn-large btn-success btn-block"><i class="icon-check"></i>Comprar <?php echo $compred->data_contratacao?></a>
<?php } ?>

 

 

Mas eu não consigo recuperar os valores do meu banco de dados! O erro que eu recebo ao executar a página é:

 

Warning: Invalid argument supplied for foreach() in/home/xxxxxxxx/public_html/Fidelidade/platium.tplon line 324

 

Alguém ai pode me ajudar o que é? Como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

<?php 

foreach($Platium as $compred){  
?>

<a href="javascript:void(0)" class="btn btn-large btn-success btn-block"><i class="icon-check"></i>Comprar <?php echo $compred->data_contratacao?></a>
<?php } ?>

 

 

Mas eu não consigo recuperar os valores do meu banco de dados! O erro que eu recebo ao executar a página é:

 

Warning: Invalid argument supplied for foreach() in/home/xxxxxxxx/public_html/Fidelidade/platium.tplon line 324

 

Alguém ai pode me ajudar o que é? Como resolver isso?

 

Verifique se o conteudo da variavel $Platium é um array.

 

 

 

var_dump($Platium);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 $this->set('Platium', Fidelidade::getCompredPlatium(Auth::$userinfo->code, Auth::$userinfo->pilotid));

 

vc usa alguma coisa para gerar os templates?

se possivel teste a consulta direto no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 $this->set('Platium', Fidelidade::getCompredPlatium(Auth::$userinfo->code, Auth::$userinfo->pilotid));

 

vc usa alguma coisa para gerar os templates?

se possivel teste a consulta direto no banco.

Sim isso que eu estou tentando fazer é um módulo baseado em um programa CMS!

Compartilhar este post


Link para o post
Compartilhar em outros sites

testou a consulta direto no banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

class Fidelidade extends CodonData {
   public static function getCompredPlatium($pid) {

 

 

 

Fidelidade::getCompredPlatium(Auth::$userinfo->code, Auth::$userinfo->pilotid)

 

coloca o error_reporting no inicio do arquivo:

 

ini_set('display_errors', 1);
error_reporting(E_ALL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 


class Fidelidade extends CodonData {
   public static function getCompredPlatium($pid) {

 

 

 

Fidelidade::getCompredPlatium(Auth::$userinfo->code, Auth::$userinfo->pilotid)

 

coloca o error_reporting no inicio do arquivo:

 

ini_set('display_errors', 1);
error_reporting(E_ALL);

Me retornou o seguinte erro:

 

 

<b>Notice</b>: Undefined variable: platium in <b>/home/xxxxxx/public_html/v2/lib/skins/v2/Fidelidade/platium.tpl</b> on line <b>332</b><br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq eu n entendo é vc tem 2 classes com o mesmo nome e na assinatura de getCompredPlatium vc tem um parametro so getCompredPlatium($pid), na chamada vc passa 2 (Auth::$userinfo->code, Auth::$userinfo->pilotid)

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq eu n entendo é vc tem 2 classes com o mesmo nome e na assinatura de getCompredPlatium vc tem um parametro so getCompredPlatium($pid), na chamada vc passa 2 (Auth::$userinfo->code, Auth::$userinfo->pilotid)

É que na verdade o (Auth::$userinfo->code, Auth::$userinfo->pilotid) vai me retornar o id do usuário no caso 1 que seria a $pid!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Ou dada a aparente OOP, um objeto iterável.

 

Niss ainda to aprendendo OOP nem sabia da posibilidade de iterar com foreach sobre um objeto vou da um pesquisada sobre isso valeu Bruno...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.