Ir para conteúdo

POWERED BY:

Arquivado

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

Neto Gerbi

[Resolvido] PHP OO - erro em uma linha de comando, utilizando um

Recommended Posts

Preciso urgente de ajuda... ja fiz td o que eu sabia! ja pesquisei, mas nao consigo fazer funcionar!

 

tenho um objeto Grupo e um objeto GrupoDAO que é um objeto de acesso aos dados da base de dados, ou seja, a base de dados em forma de objetoparece q nao estou obtendo sucesso na listagem dos dados vindos da base de dados, método listarGrupos()

 

vejam e critiquem a vontade!

 

objeto GrupoDAO

<?php
include_once("Conexao.class.php");

class GrupoDAO{
	private $codigo;
	private $nome;
	
	//CONSTUTOR
	public function __construct($grupo=""){
		$this->nome=$grupo->nome;
	}//fim do construtor
	
	public function inserirGrupo(){
	...}//fim do inserir
	
	public function excluirGrupo(){
		...}//fim do excluir
	
	public function alterarGrupo($nome){
		...}//fim do alterar
	
	public function consultarGrupo(){
				...}//fim do consultarGrupo
	
	public function compararGrupo(){
				...}//fim do compararGrupo
	
		//listarUsuarios
	public function listarGrupos(){
		$con=new Conexao;
		$query ="SELECT * FROM GRUPOS";
		$result=$con->sql($query);
		
		$con->fechar();
		
		return $result;	//retorna lista de todos os usuarios existentes no banco
	} //fim do listarUsuario
	
}//fim da classe
?>

pagina onde uso o metodo da classe DAO

<?php 
	include_once("..\apjs0307\ObjetosCA\Grupo.php");
	include_once("..\apjs0307\ObjetosCA\GrupoDAO.php");
					
	$grupo=new Grupo;
	$grupoDAO=new GrupoDAO($grupo);
					
	$listaDeGrupos=grupoDAO->listarGrupos();
	while($row = mysql_fetch_array($listaDeGrupos)){
			 	echo "<option value='".$row['CODIGO']."' >".$row['NOME']."</option>";
	}

?>

aparece erro na linha :- $listaDeGrupos=grupoDAO->listarGrupos(); erro do editor php: "Multiple items at this position: syntax error"

 

outro erro na linha:- while($row = mysql_fetch_array($listaDeGrupos)){ erro do editor php: "Syntax Error: Expecting: '('"

 

e no navegador aparece este erro: Parse error: parse error in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\apjs0307\cadastroDeUsuario.php on line 78

( no caso a linha 78 é esta $listaDeGrupos=grupoDAO->listarGrupos(); )

 

Obrigadooo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O parse error, é pq você colocou errado mesmo:

$grupo = new Grupo;
	$grupoDAO = new GrupoDAO($grupo);
					
	$listaDeGrupos = $grupoDAO->listarGrupos();
Não entendi o motivo do construtor dessa classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse construtor aqui:

public function __construct($grupo=""){
		$this->nome=$grupo->nome;
	}//fim do construtor
não faz o menor sentido pra mim..

Mas então.. e o resto ? fez a alteração que sugeri ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o objeto grupo é instancia da classe Grupo... o objeto grupoDAO é uma classe DAO que é o mapa da do banco de dados em forma de classe para acessar os dados da base de dados! mas a classe GrupoDAO recebe os parametros vindos da classe Grupo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enfim, arrumou o $ que estava faltando?

$listaDeGrupos=grupoDAO->listarGrupos();
Faça oque for sugerido antes de postar novamente, se não vira uma espécie de 'chat'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o construtor da classe DAO está assim para receber os parametros da classe Grupo e repassá-las à base de dados no caso de uma inclusão etc.,..

 

arrumei... todos os erros de sintaxe sumiram, mas nao funcionou o método! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

vejam o que encontrei no sorce code:

<b>Warning</b>:  include_once(..\apjs0307\ObjetosCA\GrupoDAO.php) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in <b>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\apjs0307\cadastroDeUsuario.php</b> on line <b>73</b><br />
<br />
<b>Warning</b>:  include_once() [<a href='function.include'>function.include</a>]: Failed opening '..\apjs0307\ObjetosCA\GrupoDAO.php' for inclusion (include_path='.;C:\php5\pear') in <b>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\apjs0307\cadastroDeUsuario.php</b> on line <b>73</b><br />
<br />
<b>Fatal error</b>:  Class 'GrupoDAO' not found in <b>C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\apjs0307\cadastroDeUsuario.php</b> on line <b>76</b><br />

pelo que entendi, ele nao consegue encontrar o arquivo grupoDAO.php!?!?!

 

mas ele esta lá!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

include_once("../apjs0307/ObjetosCA/Grupo.php");
	include_once("../apjs0307/ObjetosCA/GrupoDAO.php");
os diretórios estão corretos mesmo, ne?!

 

Pelo que deu pra ver, seria:

include_once("./ObjetosCA/Grupo.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcionou... axo q a pagina estava carregando repetidamente a mesma coisa!!! eu estava dando enter na linha de endereço... quando cliquei em atualizar do navegador... mudou!!!

 

a primeira linha do select da função nao aparece... vou fuçar aki pra ver o que encontro... este tópico está resolvido ;D muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu quero saber se quando utilizo herança posso usar metodos da classe pai dentro da classe filha?

 

heheh, herança é exatamente isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

public function inserirAdministrador(){

parent::inserirUsuario();

//restante do codigo de inserir

 

}

 

quero saber se posso fazer dessa forma acima, ou se eu devo reescrever o codigo do inserirUsuario() dentro do inserirAdministrador() juntando os codigos?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

public function inserirAdministrador(){

parent::inserirUsuario();

//restante do codigo de inserir

 

}

 

quero saber se posso fazer dessa forma acima, ou se eu devo reescrever o codigo do inserirUsuario() dentro do inserirAdministrador() juntando os codigos?!?!

 

Isso ai se chama Template Method, você não apenas pode como deve utilizar essa forma sempre que necessário.

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.