Ir para conteúdo

POWERED BY:

Arquivado

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

Pedro Roccon

PHP OO e Banco de Dados

Recommended Posts

Galera primeiramente bom dia à todos e obrigado por se interessarem em meu tópico.

Minha dúvida acredito que seja simples, mas estou enrroscado.

 

Bom, primeiramente tenho 2 arquivos, um arquivo index,php e uma classe chama tagPrinter.php. Eu crio a classe no tagPrinter.php e instancio ela em index.php, beleza?

 

Bom vamos lá, eu tenho um método em minha classe para realizar uma busca no banco de dados:

public function getAllNonPrintedTags() {
	$query = parent::$objDB->prepare('SELECT PDV_EmbalagemCodBarra FROM PDV_EMBALAGEM WHERE SUBSTRING(PDV_EmbalagemCodBarra, 1, 14) = :cod');
	return $query->execute(array(':cod' => $this->cid));
}
Essa consulta irá pesquisar no banco de dados, e me retornar uma série de registros. Para ser mais preciso 4 registro. Agora em vem index.php onde estou com problema. Como eu faço para exibir os resultados que o método getAllNonPrintedTags me retornou? Lembrando que ele pode ser 1 ou vários resultados. Estou tentando desta forma:
$print = new TagPrinter($_POST['cid']);
$query = $print->getAllNonPrintedTags()->execute();

while($row = $query->fetch(PDO::FETCH_OBJ)):
	echo $row->PDV_EmbalagemCodBarra;
endwhile;

Mas recebo a seguinte mensagem de erro:

 

Fatal error: Call to a member function execute() on a non-object in G:\EasyPHP DevServer\data\localweb\Etiquetas-TST\controller\tagPrinterController.php on line 12

 

Minha consulta está correta, o que eu estou fazendo de errado?

 

Muito obrigado, desde já agradeço

Um ótimo dia à todos :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu método getAllNonPrintedTags(), ao invés de retornar um execute(), experimente assim:

 

 

$arrBindParams =  array( ':cod' => $this->cid );
$query->setFetchMode( PDO::FETCH_CLASS, 'TagPrinter' );

if ( $query->execute( $arrBindParams ) ) {
    $data = $stmt->fetchAll();
            
    $stmt->closeCursor();

    return $data;
}

 

E na hora de exibir:

 

$print     = new TagPrinter($_POST['cid']);
$data     = $print->getAllNonPrintedTags();

foreach( $data as $row ):
    echo $row->PDV_EmbalagemCodBarra;
endforeach;

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.