RafaelMCastro Posted May 9, 2012 Report Share Posted May 9, 2012 Olá. Já pesquisei em N lugares. Já testei no servidor web local e remoto. Já pesquisei no fórum, vários fóruns.Deixe-me mostrar minha dúvidaTenho uma classe de conexao com banco de dados.// conecta_banco.class.php<?php class Banco { private $banco; private $host = "localhost"; private $usuario = "usuario"; private $senha = "senha"; private $db = "bancoDeDados"; private $conex; public function __construct() { $this->conex = mysql_connect($this->host, $this->usuario, $this->senha) or die (mysql_error()); mysql_select_db($this->db,$this->conex); } public function __destruct() { mysql_close($this->conex); } public function teste($sql) { return $sql; } }?>// e a index.php<?php include_once 'conecta_banco.class.php'; $sql = 'SELECT * FROM clientes'; $banco2 = new Banco(); $banco2->teste($sql); ?>O resultado na tela é sempre em branco. Porque? O que está acontecendo?Abraço Quote Link to comment Share on other sites More sharing options...
0 Romero Dias Posted May 9, 2012 Report Share Posted May 9, 2012 Rafael,você está acessando o método teste() de sua classe Banco. Este método não possui implementação. Então, realmente não vai executar nada!Faça o seguinte.Implemente isso em seu método. Seu método teste() deve retornar um array contendo os dados do banco.public function teste($sql) { $query = @mysql_query($sql,$this->conex) or die(mysql_get_last_message() . error_get_last()); $arrReturn = array(); if (mysql_num_rows($query)) { while($dados =mysql_fetch_array($query,true)) { $arrReturn[] = $dados; } } return $arrReturn; }Faça um teste. Estou sem apache aqui e não tive a oportundiade de testar.Abraço. Quote Link to comment Share on other sites More sharing options...
0 RafaelMCastro Posted May 9, 2012 Author Report Share Posted May 9, 2012 Romero, olá...Obrigado pela ajuda.Também não funcionou. Continuei então as minhas pesquisas e consegui ler os dados dentro de uma tabela. Veja o código// index.php<?php include_once "conecta_banco.class.php"; $sql = "SELECT * FROM clientes"; $banco = new Banco(); $banco->contar($sql); ?> // conecta_banco.class.php <?php class Banco { public $host = "localhost"; public $usuario = "root"; public $senha = "root"; public $db = "bancoDeDados"; public $conex; public function __construct() { $this->conex = mysql_connect($this->host, $this->usuario, $this->senha) or die (mysql_error()); mysql_select_db($this->db,$this->conex) or die (mysql_error()); } public function __destruct() { mysql_close($this->conex); } public function contar($sql) { $query = mysql_query($sql); $conta = mysql_num_rows($query); echo $conta; } public function listar($sql) { $query = mysql_query($sql); while ($show = mysql_fetch_object($query)) { echo $show->nome; echo "<br>"; } } } ?>Agora está funcionando, mas tenho uma pergunta:Nas functions contar ou listar, só consigo exibir os dados quanto dou o comando "echo". Se eu dou o comando "return" a tela volta a ficar em branco...Abraço e obrigado mais uma vez... Quote Link to comment Share on other sites More sharing options...
0 Romero Dias Posted May 9, 2012 Report Share Posted May 9, 2012 (edited) Rafael,Certamente, na maioria das vezes, um método retorna alguma coisa e você tem que saber o que fazer com este retorno.Segue abaixo um exemplo que preparei para você.class Carro { /* Método para retornar um array de carros */ public function listarCarros() { $arrCarros = array( 'Corsa', 'Celta', 'Vectra' ); return $arrCarros; } } /* Inicializa um array que receberá uma lista de carros*/ $arrayDeCarros = array(); /* Cria um objeto do tipo Carro*/ $carro = new Carro(); /* Aqui você pega o retorno do método listarCarros() e atribui este retorno ao array $arrayDeCarros*/ $arrayDeCarros = $carro->listarCarros(); /* Daqui para frente você faz o que bem entender com o array $arrayDeCarros * Por exermplo, irei imprimir este array na tela */ echo '<pre>'; print_r($arrayDeCarros); echo '</pre>';Qualquer dúvida estamos ai!Te aconcelho a pesquisar sobre orientação à objetos em PHP, vai ter dar uma visão do funcionamento. Edited May 9, 2012 by Romero Dias Quote Link to comment Share on other sites More sharing options...
Question
RafaelMCastro
Olá. Já pesquisei em N lugares. Já testei no servidor web local e remoto. Já pesquisei no fórum, vários fóruns.
Deixe-me mostrar minha dúvida
Tenho uma classe de conexao com banco de dados.
// conecta_banco.class.php
<?php
class Banco
{
private $banco;
private $host = "localhost";
private $usuario = "usuario";
private $senha = "senha";
private $db = "bancoDeDados";
private $conex;
public function __construct()
{
$this->conex = mysql_connect($this->host, $this->usuario, $this->senha) or die (mysql_error());
mysql_select_db($this->db,$this->conex);
}
public function __destruct()
{
mysql_close($this->conex);
}
public function teste($sql)
{
return $sql;
}
}
?>
// e a index.php
<?php
include_once 'conecta_banco.class.php';
$sql = 'SELECT * FROM clientes';
$banco2 = new Banco();
$banco2->teste($sql);
?>
O resultado na tela é sempre em branco. Porque? O que está acontecendo?
Abraço
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.