RafaelMCastro Postado Maio 9, 2012 Denunciar Share Postado Maio 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Maio 9, 2012 Denunciar Share Postado Maio 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RafaelMCastro Postado Maio 9, 2012 Autor Denunciar Share Postado Maio 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Maio 9, 2012 Denunciar Share Postado Maio 9, 2012 (editado) 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. Editado Maio 9, 2012 por Romero Dias Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.