ajuda com Orientação objetos em PHP

1. ajuda com Orientação objetos em PHP

thiago
iceoz

(usa Debian)

Enviado em 30/04/2010 - 09:55h

#oi eu to desenvolvendo um sistema de gerencia de projetos todo orientado a objetos.
#so que preciso de uma ajuda. vo por um exemplo simples ai do que eu tenho e oque eu queria fazer.

Class Projeto
{
private $id = null;
private $nome = null;
private $datainicio = null;
private $datafim = null;
private $tarefas = null; //Array de objetos do tipo Tarefa

public function getId(){ return $id; }
public function setId($id){ $this->id = $id; }

public function getNome(){ return $nome; }
public function setNome($nome){ $this->nome = $nome; }

public function getDatainicio(){ return $datainicio; }
public function setDatainicio($datainicio){ $this->datainicio = $datainicio; }

public function getDatafim(){ return $datafim; }
public function setDatafim($datafim){ $this->datafim = $datafim; }

public function getTarefas(){ return $tarefas; }
public function addTarefas($idTarefa, $tarefa){ $this->tarefas[$idTarefa] = $tarefa; }
public function removeTarefas($idTarefa){ $this->tarefas[$idTarefa] = null; }

public __contruct(){}
}

class Tarefa
{
private $id = null;
private $idprojeto = null;
private $nome = null;
private $datainicio = null;
private $datafim = null;

public function getId(){ return $id; }
public function setId($id){ $this->id = $id; }

public function getIdprojeto(){ return $idprojeto; }
public function setIdprojeto($idprojeto){ $this->idprojeto = $idprojeto; }

public function getNome(){ return $nome; }
public function setNome($nome){ $this->nome = $nome; }

public function getDatainicio(){ return $datainicio; }
public function setDatainicio($datainicio){ $this->datainicio = $datainicio; }

public function getDatafim(){ return $datafim; }
public function setDatafim($datafim){ $this->datafim = $datafim; }
}

#blz duas classes bem simples.
#
#dai vo faze meu select lah e pega todos os projetos e monta um array e então selecionar todas as tarefas e #separalas por projeto. por exemplo:

$idsProjetos = "-1";
$projetos = Array(); # aqui vou guardar meus projetos

$sql = mysql_query('select * from projetos');
while($res = mysql_fetch_assoc($sql))
{
$projeto = new Projeto();
$projeto->setId($res['id']);
$projeto->setNome($res['nome']);
$projeto->setDatainicio($res['datainicio']);
$projeto->setDatafim($res['datafim']);
$projetos[$projeto->getId()] = $projeto;
$idsProjetos .= ','.$projeto->getId();
}

#até acho que ta beleza o meu problema vem agora

$sql = mysql_query('select * from tarefas where idprojeto in ('.$idsProjetos.')');
while($res = mysql_fetch_assoc($sql))
{
$tarefa = new Tarefa();
$tarefa->setId($res['id']);
$tarefa->setIdprojeto($res['idprojeto']);
$tarefa->setNome($res['nome']);
$tarefa->setDatainicio($res['datainicio']);
$tarefa->setDatafim($res['datafim']);

# agora vem meu problema como eu faço algo assim? desse jeito não funciona.
# mais acho que da pra entender oque eu quero fazer.

((Projeto)$projetos[$tarefa->getIdprojeto()])->addTarefa($tarefa->getId(), $tarefa);

# isso que eu não to conseguindo fazer, se eu consegui fazer isso ai resolvo todos os meus problema. ajuda ai =)

}





  


2. Monte a string Sql antes de executar

Paulo
henbran

(usa Debian)

Enviado em 30/04/2010 - 10:24h

E depois de um echo de teste para analizar a string Sql;

Onte está:
$sql = mysql_query('select * from tarefas where idprojeto in ('.$idsProjetos.')');

FAÇA:

.
.
.

$sql = "select * from tarefas where idprojeto in ('.$idsProjetos.')";
echo $sql; exit; // LINHA SÓ PARA TESTE

mysql_query('select * from tarefas where idprojeto in ('.$idsProjetos.')');

.
.
.

capture o resultado do echo da linha de teste e tente o executar no phpmyadmin ou outro front adm do mysql, certamente se evidenciará melhor o erro.


3. eu sei eu sei

thiago
iceoz

(usa Debian)

Enviado em 30/04/2010 - 11:16h

vlw mais esse sql do jeito que tah ai tah funcionando. meu problema é no final. quero saber como do um cast em um objeto do tipo Projeto que está dentro do array projetos