Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

Select OO

Recommended Posts

Ai pessoal, fiz meu primeiro script em OO, oque esta de errado para mostrar as informações da tbl_usuarios? abraços

 

<?php

class conexao{

	var $local = "localhost";
	var $usuario = "root";
	var $senha = "051288";
	var $bd = "intranet 3.1";

	function conecta(){

		mysql_connect($this->local, $this->usuario, $this->senha);
		mysql_select_db($this->bd);

	}

	function select(){

		$conexao = $this->conecta();
		$select = $conexao->prepara("SELECT * FROM tbl_usuarios");
		return $select;

	}

}

$conexao = new conexao;
$conexao->conecta();
$conexao->select();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça o conecta() retornar a conexão. faça o php exibir os erros tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fatal error: Call to a member function prepara() on a non-object in C:\Program Files\EasyPHP-5.3.9\www\intranet3.1\teste\index.php on line 20

 

linha 20

 

$select = $conexao->prepara("SELECT * FROM tbl_usuarios");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando PHP 5+ ?

 

Se sim , não é mais usado var na variáveis e sim propriedades de visibilidade ( private , protected , public ).

 

function select(){

                       $conexao = $this->conecta();
                       $select = $conexao->prepara("SELECT * FROM tbl_usuarios");
                       return $select;

               }

Neste parte você está chamando a função prepara , mas ela não existe

Compartilhar este post


Link para o post
Compartilhar em outros sites

como conecta n retorna nada, $conexao é vazio logo n pode executar o metodo prepara().

$conexao = $this->conecta();
$select = $conexao->prepara("SELECT * FROM tbl_usuarios");

 

o metodo prepara esta em qual classe?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na real não existe não o prepara, não tenho mais classes nenhuma, tudo que tenho é isso, só queria mostrar as informações da tbl_usuarios, tipo isso

 

<?php

$seleciona = "SELECT * FROM tbl_usuarios";
$query = mysql_query($seleciona);
$dados = mysql_fetch_array($query);
echo $dados[0];

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

class conexao {

private $local = "localhost";
private $usuario = "root";
private $senha = "051288";
private $bd = "intranet 3.1";
private $link;

function conecta() {

	mysql_connect($this->local, $this->usuario, $this->senha);
	$this->link = mysql_select_db($this->bd);

}

function select() {

	$seleciona = "SELECT * FROM tbl_usuarios";
	$query = mysql_query($seleciona, $this->link);

	$lista = array();
	while($dados = mysql_fetch_array($query)){
		$lista[] = $dados;
	}

	return $lista;

}

}

$conexao = new conexao;
$conexao->conecta();
$conexao->select();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: mysql_query() expects parameter 2 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.9\www\intranet3.1\teste\index.php on line 21

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\Program Files\EasyPHP-5.3.9\www\intranet3.1\teste\index.php on line 24

 

linha 21

 

$query = mysql_query($seleciona, $this->link);

 

linha 24

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

$query = mysql_query($seleciona);

Compartilhar este post


Link para o post
Compartilhar em outros sites

shini desculpe te falar, mas da onde você tirou que mysql_select_db é um resource ??? :

 $this->link = mysql_select_db($this->bd)

 

O certo é isso:

<?php

class conexao {

       private $local = "localhost";
       private $usuario = "root";
       private $senha = "051288";
       private $bd = "intranet 3.1";
       private $link;

       function conecta() {

               if($this->link = mysql_connect($this->local, $this->usuario, $this->senha)){
                 mysql_select_db($this->bd);
               } else {
                 echo 'Falha na conexão';
                 exit;
               }

       }

       function select() {

               $seleciona = "SELECT * FROM tbl_usuarios";
               $query = mysql_query($seleciona, $this->link);

               $lista = array();
               while($dados = mysql_fetch_array($query)){
                       $lista[] = $dados;
               }

               return $lista;

       }

}

$conexao = new conexao;
$conexao->conecta();
$conexao->select();

?>

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim não da erro mais, mas não mostrou nada

Não falta um print_r ou var_dump? Por exemplo:

<?php

class conexao {

       private $local = "localhost";
       private $usuario = "root";
       private $senha = "051288";
       private $bd = "intranet 3.1";
       private $link;

       function conecta() {

               mysql_connect($this->local, $this->usuario, $this->senha);
               $this->link = mysql_select_db($this->bd);

       }

       function select() {

               $seleciona = "SELECT * FROM tbl_usuarios";
               $query = mysql_query($seleciona, $this->link);

               $lista = array();
               while($dados = mysql_fetch_array($query)){
                       $lista[] = $dados;
               }

               return $lista;

       }

}

$conexao = new conexao;
$conexao->conecta();
prin_r( $conexao->select() );

Ou você prefere que a própria função conexao::select exiba os dados? Se for isso, tente assim:

<?php

class conexao {

       private $local = "localhost";
       private $usuario = "root";
       private $senha = "051288";
       private $bd = "intranet 3.1";
       private $link;

       function conecta() {

               mysql_connect($this->local, $this->usuario, $this->senha);
               $this->link = mysql_select_db($this->bd);

       }

       function select() {

               $seleciona = "SELECT * FROM tbl_usuarios";
               $query = mysql_query($seleciona, $this->link);

               $lista = array();
               while($dados = mysql_fetch_array($query)){
                      print_r( $dados );
               }

       }

}

$conexao = new conexao;
$conexao->conecta();
$conexao->select();
?>

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.