Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
badauidavid

classe php

Recommended Posts

Galera estou na fase final de testes na minha empresa, fiz alguns codigos, ai tava tudo dando certo e pediram pra eu juntar isso em uma classe!

Arquivo 1

<?php
class consultar{

public $hostname = "localhost";
public $user = "root";
public $pass = "";
public $dbase = "imobex";


function conectar($hostname,$user,$pass,$dbase) {
$this->hostname = $hostname;
$this->user = $user;
$this->pass = $pass;
$this->dbase = $dbase;
$db = mysql_connect($hostname,$user,$pass);
mysql_select_db($dbase);
}

public function consulta1(){
$sql = "SELECT cd_cliente,cd_imovel, referencia, disponivel, situacao, cd_pais, cd_estado, cd_cidade, cd_bairro FROM imovel WHERE cd_cliente = 2 and disponivel = 'S' and situacao = 'A' and cd_pais IS NOT NULL and cd_estado IS NOT NULL and cd_estado IS NOT NULL and cd_bairro IS NOT NULL";
$consulta = mysql_query($sql);
for ($i = 1; $i <= 20; $i++) {
$linha1 = mysql_fetch_array($consulta);
echo $i . " codigo do cliente: " . $linha1['cd_cliente']." ";
echo " codigo do imovel: " .$linha1['cd_imovel']." ";
echo " referencia: " . $linha1['referencia']." ";
echo " disponibilidade: " .$linha1['disponivel']." ";
echo " situacao:" . $linha1['situacao']." ";
echo " codigo do pais: " . $linha1['cd_pais']." ";
echo " codigo do estado: " .$linha1['cd_estado']." ";
echo " codigo da cidade: " .$linha1['cd_cidade']." ";
echo " codigo do baurro: ".$linha1['cd_bairro']."<br /> ";}
}

public function consulta2(){
$sql = "SELECT portal_imovel.cd_portal, imovel.cd_cliente,imovel.cd_imovel, imovel.referencia, imovel.disponivel, imovel.situacao, imovel.cd_pais, imovel.cd_estado, imovel.cd_cidade, imovel.cd_bairro FROM imovel, portal_imovel WHERE imovel.cd_cliente = 2 and imovel.disponivel = 'S' and imovel.situacao = 'A' and imovel.cd_pais IS NOT NULL and imovel.cd_estado IS NOT NULL and imovel.cd_estado IS NOT NULL and imovel.cd_bairro IS NOT NULL and imovel.cd_cliente = portal_imovel.cd_cliente and portal_imovel.cd_portal = 4";
$consulta = mysql_query($sql);
for ($i = 1; $i <= 100; $i++) {
$linha1 = mysql_fetch_array($consulta);
echo $i . " codigo do portal: " . $linha1['cd_portal']." ";
echo " codigo do cliente: " . $linha1['cd_cliente']." ";
echo " codigo do imovel: " .$linha1['cd_imovel']." ";
echo " referencia: " . $linha1['referencia']." ";
echo " disponibilidade: " .$linha1['disponivel']." ";
echo " situacao:" . $linha1['situacao']." ";
echo " codigo do pais: " . $linha1['cd_pais']." ";
echo " codigo do estado: " .$linha1['cd_estado']." ";
echo " codigo da cidade: " .$linha1['cd_cidade']." ";
echo " codigo do baurro: ".$linha1['cd_bairro']."<br /> ";
}



}





}




?>

no codigo acima juntei os meus 3 métodos em uma classe, e estou tentando chamar estes metodos em um outro arquivo php.

Arquivo 2

<?php
include "consultar.php";
$cons = new consultar("localhost","root","","imobex");

$cons->consulta1();
?>

não está funcionando, e gera o erro que pode ser visualizado nos anexos que eu enviei, porém, se eu fizer a consulta fora da classe desta maneira funciona perfeitamente


<?php $sql = "SELECT cd_cliente,cd_imovel, referencia, disponivel, situacao, cd_pais, cd_estado, cd_cidade, cd_bairro FROM imovel WHERE cd_cliente = 2 and disponivel = 'S' and situacao = 'A' and cd_pais IS NOT NULL and cd_estado IS NOT NULL and cd_estado IS NOT NULL and cd_bairro IS NOT NULL";
$consulta = mysql_query($sql);
for ($i = 1; $i <= 20; $i++) {
$linha1 = mysql_fetch_array($consulta);
echo $i . " codigo do cliente: " . $linha1['cd_cliente']." ";
echo " codigo do imovel: " .$linha1['cd_imovel']." ";
echo " referencia: " . $linha1['referencia']." ";
echo " disponibilidade: " .$linha1['disponivel']." ";
echo " situacao:" . $linha1['situacao']." ";
echo " codigo do pais: " . $linha1['cd_pais']." ";
echo " codigo do estado: " .$linha1['cd_estado']." ";
echo " codigo da cidade: " .$linha1['cd_cidade']." ";
echo " codigo do baurro: ".$linha1['cd_bairro']."<br /> ";}
?>

isso me leva a crer que estou fazendo algo de errado na estrutura da classe, alguem pode me ajudar?

post-805801-13884965984135_thumb.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá badauidavid,

você não está realizando a conexão ao banco de dados, você tem duas opções:

1. Chamar o método de conexão

2. Passar a função do método de conexão para o construtor da classe

Pelo que você fez eu acredito que a segunda opção tenha sido a sua intenção:

No PHP existem métodos "mágicos", eles costumam começar com dois underline, por exemplo:

'__construct' => Construtor do objeto/instancia

'__destruct' => Destrutor do objeto/instancia

se você se interessar você pode ler mais em:

http://php.net/manual/pt_BR/language.oop5.magic.php

a minha ideia é você substituir o método conectar pelo construtor, por exemplo:

antes estava assim:


function conectar($hostname,$user,$pass,$dbase) {
$this->hostname = $hostname;
$this->user = $user;
$this->pass = $pass;
$this->dbase = $dbase;
$db = mysql_connect($hostname,$user,$pass);
mysql_select_db($dbase);
}

agora vai ficar assim:


function __construct($hostname,$user,$pass,$dbase) {
$this->hostname = $hostname;
$this->user = $user;
$this->pass = $pass;
$this->dbase = $dbase;
$db = mysql_connect($hostname,$user,$pass);
mysql_select_db($dbase);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peço perdão epla falta de informção acima, anteriormente tentei fazer como um construtor e gerou o mesmo erro alguma terceira opção?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×