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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts