Ir para conteúdo

POWERED BY:

Arquivado

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

danielswater

[Resolvido] acessar array de uma classe

Recommended Posts

fala pessoal tudo bem?

tenho uma classe e uma função aqui p pegar dados do banco a partir de um id passado por paramentro:

class Teste {

   public $array = array();

   function listaProduto($id) {

       $query = mysql_query("SELECT * FROM produto WHERE categoria_id = $id;");
       while ($linha = mysql_fetch_array($query)) {
           $this->array = $linha['codigo'];
           $this->array = $linha['descricao'];
       }
   }

}

 

o que eu precisava era que na pagina que eu for chamar esse objeto Teste(), eu pudesse pegar valores desse array, tipo assim:

 

<?php 
$teste = new Teste();

$teste->listaProduto(1);

foreach($teste->array as $valor): {

?>
<td><?php echo $valor->codigo</td> //querendo pegar o a coluna codigo do banco
<td><?php echo $valor->descricao</td> //querendo pegar o a coluna descricao do banco

<?php endforeach; ?>

 

alguem sabe como posso fazer isso?

 

 

obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

danielswater,

 

Para isso que você quer tem que criar um objeto como retorno....

 

$nome_obj = get_class($this);

while ($linha = mysql_fetch_array($query)) {

 

$teste = new $nome_obj();

$teste->codigo = $linha['codigo'];

$teste->descricao = $linha['descricao'];

$a_teste[] = $teste;

}

return $a_teste[] ;

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

danielswater,

 

Para isso que você quer tem que criar um objeto como retorno....

 

$nome_obj = get_class($this);

while ($linha = mysql_fetch_array($query)) {

 

$teste = new $nome_obj();

$teste->codigo = $linha['codigo'];

$teste->descricao = $linha['descricao'];

$a_teste[] = $teste;

}

return $a_teste[] ;

 

t+

 

entao rafael mas como eu chamo esse array na minha página?

 

nao consegui chamar de jeito nenhum

Compartilhar este post


Link para o post
Compartilhar em outros sites
class myClass
{
  public $arr = array();

  public function myArray()
  {
     $this->arr = array( "a", "b", "c", "d" );
     return $this->arr;
  }
}

$myClass = new myClass();
$array = $myClass->myArray();

foreach( $array as $arr )
{
  print_r( $arr ); 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema e que eu tenho que pegar os valores das colunas "codigo" e "descrição" que estao n o banco e armazenar esses valores em um array

e depois, exibir esses valores em uma tabela sacou?

 

tipo

 

CODIGO:

$this->array->codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui é na sua classe..

$nome_obj = get_class($this);

while ($linha = mysql_fetch_array($query)) {

 

$teste = new $nome_obj();

$teste->codigo = $linha['codigo'];

$teste->descricao = $linha['descricao'];

$a_teste[] = $teste;

}

return $a_teste[] ;

 

 

//aqui é no seu código principal

$a_dados = $teste->listaProduto(1);

 

foreach($a_dados as $valor): {

echo $valor->codigo."<br />" ;

}

 

acho que é issoq ue você quer ...abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ninguém aqui conhece stdClass , mysql_fetch_object ? rs

 

<?php
class Products {
	/** 
	 * @var stdClass Object
	 */
	public $Items;
	/**
	 * Lista todos os produtos
	 * @param Integer $code
	 * @return Array
	 */
	public function listProducts( $code ) {
		$query = mysql_query( 'SELECT * FROM `produto` WHERE `categoria_id` = ' . $code );
		if( mysql_num_rows( $query ) ) {
			while( $row = mysql_fetch_object( $query ) ) {
				$this->Items[] = $row;
			}
		}
		return $this->Items;
	}
}

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.