Jump to content


Photo

Consulta - Php Orientado A Objetos


  • Faça o login para participar
5 replies to this topic

#1 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 14/09/2008, 11:20

Bom dia Pessoal,

Estou fazendo uma consulta no banco de dados, orientado a objetos no PHP.

Estou com problemas para imprimir na tela os dados que consulto no banco de dados via getters em uma tabela.
Eu consigo imprimir normalmente os dados sem colocar na tabela via getters.
Quando coloco na tabela ele imprime um parenteses ().

Só imprime os dados na tabela normalmente quando coloco a variável normal sem os getters. Ex: <td>$turma_id_turma</td>.


Está muito estranho pois fora da tabela eu consigo buscar os dados via getters normalmente.


Alguém poderia me ajudar a solucionar esse problema, por favor?

Muito Obrigado.



Código:


<?
include 'aluno.php';
$nome_aluno=$_POST['txt_nome_aluno'];

$aluno=new aluno();
$aluno->setNome_aluno($nome_aluno);

//echo ($aluno->getNome_aluno()); // get está funcionando

  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database"); // está conectando normalmente
  //echo "Conectado ao servidor de Banco de Dados!<br><br>";
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados"); // está selecionando o banco normalmente
  //echo "O Banco de Dados " . "cadastro" . " foi selecionado";

	 echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>";
	 echo " <tbody>";
	 echo " <tr>";
	 echo " <td style='font-weight: bold; text-align: center;'>RA Aluno</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>ID Turma</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome do Aluno</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Logradouro</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Numero</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Bairro</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Cidade</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Estado</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Telefone</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Naturalidade</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome do Pai</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome da Mãe</td>";
	 echo " </tr>";

   $sql="SELECT * FROM cadastro.aluno where nome_aluno='".$aluno->getNome_aluno()."'";  //está comparando o nome inserido normalmente com o getNome_aluno()
   // if (!$sql){
   // $message  = '<br><br><br><br><B>ERRO no select! </b>' . mysql_error() . "\n";
   //  }
   // else
   //   $message  = '<br><br><br><b>Select feito com sucesso!</b> ';
	  //die($message);
   //   echo $message;

   $tabela = mysql_query($sql, $connect);
   // if (!$tabela) {
   //  $message1  = '<br><br><br><br><B>Conexão SQL e query com problemas! </b>' . mysql_error() . "\n";;
   //  }
   //   else
   //   $message1  = '<br><br><br><b>Conexão SQL e query com sucesso!</b> ';
	  //die($message1);
   //   echo $message1;

   $linhas = mysql_num_rows($tabela);
   // if (!$linhas) {
   //  $message2  = '<br><br><br><br><B>Linhas com problemas! </b>' . mysql_error() . "\n";;
   // }
   //  else
   //  $message2  = '<br><br><br><b> Linhas com sucesso!</b> ';
   //die($message2);
   //  echo $message2;
	 echo "<br>";


	 if($linhas>0)
	 for($x=0; $x<$linhas; $x++){
	 $ra_aluno = mysql_result($tabela,$x,'ra_aluno');
	 $aluno->setRa_aluno($ra_aluno); // setando o RA Aluno
	 
	 $turma_id_turma = mysql_result($tabela,$x,'turma_id_turma');echo " <tr>";
	 $aluno->setTurma_id_turma($turma_id_turma); // setando a Turma
	 

	 $nome_aluno = mysql_result($tabela,$x,'nome_aluno');echo " <tr>";   //Já foi setado lá em cima

	 $logradouro = mysql_result($tabela,$x,'logradouro');echo " <tr>";
	 $aluno->setLogradouro($logradouro); // setando o Logradouro
	 
	 $numero = mysql_result($tabela,$x,'numero');echo " <tr>";
	 $aluno->setNumero($numero); // setando o Numero
	 
	 $bairro = mysql_result($tabela,$x,'bairro');echo " <tr>";
	 $aluno->setBairro($bairro); // setando o Bairro
	 
	 $cidade = mysql_result($tabela,$x,'cidade');echo " <tr>";
	 $aluno->setCidade($cidade); // setando a Cidade
	 
	 $estado = mysql_result($tabela,$x,'estado');echo " <tr>";
	 $aluno->setEstado($estado);  // setando o Estado
	 
	 $telefone = mysql_result($tabela,$x,'telefone');echo " <tr>";
	 $aluno->setTelefone($telefone);  // setando o Telefone
	 
	 $naturalidade = mysql_result($tabela,$x,'naturalidade');echo " <tr>";
	 $aluno->setNaturalidade($naturalidade);  // setando a Naturalidade
	 
	 $nome_pai = mysql_result($tabela,$x,'nome_pai');echo " <tr>";
	 $aluno->setNome_pai($nome_pai);  // setando o Nome do Pai
	 
	 $nome_mae = mysql_result($tabela,$x,'nome_mae');echo " <tr>";
	 $aluno->setNome_mae($nome_mae);  // setando o Nome da Mãe
	 echo "</tr>";


	 //Imprime os dados sem os getters, estruturado
	 echo "<td>$ra_aluno</td>";
	 //echo "<td>$aluno->getRa_aluno()</td>";  //se faço assim ele imprime um parenteses ()
	 echo "<td>$turma_id_turma</td>";
	 echo "<td>$nome_aluno</td>";
	 echo "<td>$logradouro</td>";
	 echo "<td>$numero</td>";
	 echo "<td>$bairro</td>";
	 echo "<td>$cidade</td>";
	 echo "<td>$estado</td>";
	 echo "<td>$telefone</td>";
	 echo "<td>$naturalidade</td>";
	 echo "<td>$nome_pai</td>";
	 echo "<td>$nome_mae</td>";
	 echo "</tr>";
	 echo "</table>";
	 echo "<br>";
	 echo "<br>";
	 }
	 
	 // Imprime os dados com getters
	 echo "<br>";
	 echo "<b>Ra Aluno</b>: ",($aluno->getRa_aluno());
	 echo "<br>";
	 echo "<b>Nome da Turma</b>: ",($aluno->getTurma_id_turma());
	 echo "<br>";
	 echo "<b>Nome do Aluno</b>: ",($aluno->getNome_aluno());
	 echo "<br>";
	 echo "<b>Logradouro</b>: ",($aluno->getLogradouro());
	 echo "<br>";
	 echo "<b>Bairro</b>: ",($aluno->getBairro());
	 echo "<br>";
	 echo "<b>Cidade</b>: ",($aluno->getCidade());
	 echo "<br>";
	 echo "<b>Estado</b>: ",($aluno->getEstado());
	 echo "<br>";
	 echo "<b>Telefone</b>: ",($aluno->getTelefone());
	 echo "<br>";
	 echo "<b>Naturalidade</b>: ",($aluno->getNaturalidade());
	 echo "<br>";
	 echo "<b>Nome do Pai</b>: ",($aluno->getNome_pai());
	 echo "<br>";
	 echo "<b>Nome da Mãe</b>: ",($aluno->getNome_mae());
?>

Edição feita por: Paulo André, 14/09/2008, 12:50.
Utilize a tag CODE para melhor visualização do código.


#2 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 14/09/2008, 13:28

Os Métodos getQualquerCoisa estão retornando o valor?

Tente dar o seguinte echo:
[codebox]echo "<b>Ra Aluno</b>: " . $aluno->getRa_aluno();[/codebox]

Uma sugestão: acho que seria mais interessante você trabalhar com arrays, usando assim somente um método para buscar os dados do aluno. Por exemplo, ao invés de vários métodos você criaria somente um, especificando o nome do dado que requisitar. Ex:
[codebox]<?
public function getDadoAluno($nome = '') {

if(isset($this->dados[$nome])) {
return $this->dados[$nome];
}

return null;

}
[/codebox]

Não seria melhor do que usar vários getters?

Espero ter ajudado.

#3 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 14/09/2008, 13:42

os métodos estão funcionando sim... mas quando coloco na tabela que defini acima ele retorna um parenteses ().

Hum.. é que não sei ainda trabalhar com arrays direito... vou dar uma estudada pra aprimorar a página.



Os seguintes dados estão sendo impressos na tela normalmente:

// Imprime os dados com getters	 
echo "<br>";	 
echo "<b>Ra Aluno</b>: ",($aluno->getRa_aluno());	 
echo "<br>";	 
echo "<b>Nome da Turma</b>: ",($aluno->getTurma_id_turma());	 
echo "<br>";	
echo "<b>Nome do Aluno</b>: ",($aluno->getNome_aluno());	 
echo "<br>";	 
echo "<b>Logradouro</b>: ",($aluno->getLogradouro());	 
echo "<br>";	 
echo "<b>Bairro</b>: ",($aluno->getBairro());	 
echo "<br>";	 
echo "<b>Cidade</b>: ",($aluno->getCidade());	 
echo "<br>";	 
echo "<b>Estado</b>: ",($aluno->getEstado());	 
echo "<br>";	 
echo "<b>Telefone</b>: ",($aluno->getTelefone());	 
echo "<br>";	 
echo "<b>Naturalidade</b>: ",($aluno->getNaturalidade());	 
echo "<br>";	 
echo "<b>Nome do Pai</b>: ",($aluno->getNome_pai());	 
echo "<br>";	 
echo "<b>Nome da Mãe</b>: ",($aluno->getNome_mae());

Edição feita por: trizzo, 14/09/2008, 13:47.


#4 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 14/09/2008, 14:43

Não percebi bem o que ele não está imprimindo. Seria isso que ele não imprime:
echo "<td>$aluno->getRa_aluno()</td>";

Se for tente substituir por isso:
echo "<td>" . $aluno->getRa_aluno() . "</td>";

Se não funcionar diz aqui e posta a função getRa_aluno() para analisar-mos.

#5 trizzo

trizzo

    Turista

  • Usuários
  • 33 posts
  • Sexo:Não informado

Posted 14/09/2008, 15:32

já deu certo!!! eu quero fazer uma função disso e colocar em outro arquivo só param chamar ele...

Separar as funções em um arquivo só...

Mas tentei fazer AlterarAluno($aluno), entretanto não ta chamando certo...

function AlterarAluno($aluno){
	 if($linhas>0)
	 for($x=0; $x<$linhas; $x++){
	 $ra_aluno = mysql_result($tabela,$x,'ra_aluno');
	 $aluno->setRa_aluno($ra_aluno); // setando o RA Aluno
	 
	 $turma_id_turma = mysql_result($tabela,$x,'turma_id_turma');echo " <tr>";
	 $aluno->setTurma_id_turma($turma_id_turma); // setando a Turma

	 $nome_aluno = mysql_result($tabela,$x,'nome_aluno');echo " <tr>"; // nome do aluno setado acima

	 $logradouro = mysql_result($tabela,$x,'logradouro');echo " <tr>";
	 $aluno->setLogradouro($logradouro); // setando o Logradouro
	 
	 $numero = mysql_result($tabela,$x,'numero');echo " <tr>";
	 $aluno->setNumero($numero); // setando o Numero
	 
	 $bairro = mysql_result($tabela,$x,'bairro');echo " <tr>";
	 $aluno->setBairro($bairro); // setando o Bairro
	 
	 $cidade = mysql_result($tabela,$x,'cidade');echo " <tr>";
	 $aluno->setCidade($cidade); // setando a Cidade
	 
	 $estado = mysql_result($tabela,$x,'estado');echo " <tr>";
	 $aluno->setEstado($estado);  // setando o Estado
	 
	 $telefone = mysql_result($tabela,$x,'telefone');echo " <tr>";
	 $aluno->setTelefone($telefone);  // setando o Telefone
	 
	 $naturalidade = mysql_result($tabela,$x,'naturalidade');echo " <tr>";
	 $aluno->setNaturalidade($naturalidade);  // setando a Naturalidade
	 
	 $nome_pai = mysql_result($tabela,$x,'nome_pai');echo " <tr>";
	 $aluno->setNome_pai($nome_pai);  // setando o Nome do Pai
	 
	 $nome_mae = mysql_result($tabela,$x,'nome_mae');echo " <tr>";
	 $aluno->setNome_mae($nome_mae);  // setando o Nome da Mãe
	 echo "</tr>";


	 //Imprime os dados sem os getters, estruturado
	 //echo "<td>$ra_aluno</td>";
	 echo "<td>" . $aluno->getRa_aluno() . "</td>";
	 //echo "<td>$aluno->getRa_aluno()</td>";  //se faço assim ele imprime um parenteses ()
	 echo "<td>" . $aluno->getTurma_id_turma() . "</td>";
	 echo "<td>" . $aluno->getNome_aluno() . "</td>";
	 echo "<td>" . $aluno->getLogradouro() . "</td>";
	 echo "<td>" . $aluno->getNumero() . "</td>";
	 echo "<td>" . $aluno->getBairro() . "</td>";
	 echo "<td>" . $aluno->getCidade() . "</td>";
	 echo "<td>" . $aluno->getTelefone() . "</td>";
	 echo "<td>" . $aluno->getEstado() . "</td>";
	 echo "<td>" . $aluno->getNaturalidade() . "</td>";
	 echo "<td>" . $aluno->getNome_pai() . "</td>";
	 echo "<td>" . $aluno->getNome_mae() . "</td>";
	 //echo "<td>$turma_id_turma</td>";
	 //echo "<td>$nome_aluno</td>";
	 //echo "<td>$logradouro</td>";
	 //echo "<td>$numero</td>";
	 //echo "<td>$bairro</td>";
	 //echo "<td>$cidade</td>";
	 //echo "<td>$estado</td>";
	 //echo "<td>$telefone</td>";
	 //echo "<td>$naturalidade</td>";
	 //echo "<td>$nome_pai</td>";
	 //echo "<td>$nome_mae</td>";
	 //echo "</tr>";
	 //echo "</table>";
	 //echo "<br>";
	 //echo "<br>";
	 
	}


Depois tento chamar, e não vai:

AlterarAluno($aluno);


desculpe, acho que coloquei function no lugar errado..

teria como eu fazer uma function ai? não to conseguindo...

Meu código está assim agora:

<?
include 'aluno.php';
$nome_aluno=$_POST['txt_nome_aluno'];

$aluno=new aluno();
$aluno->setNome_aluno($nome_aluno);

  $connect=mysql_connect("localhost","root","") or die("Connection Failure to Database"); 
  mysql_select_db("cadastro",$connect) or die ("Não é possível selecionar o banco de dados");

	 echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>";
	 echo " <tbody>";
	 echo " <tr>";
	 echo " <td style='font-weight: bold; text-align: center;'>RA Aluno</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>ID Turma</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome do Aluno</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Logradouro</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Numero</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Bairro</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Cidade</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Estado</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Telefone</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Naturalidade</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome do Pai</td>";
	 echo " <td style='font-weight: bold; text-align: center;'>Nome da Mãe</td>";
	 echo " </tr>";

   $sql="SELECT * FROM cadastro.aluno where nome_aluno='".$aluno->getNome_aluno()."'";
   $tabela = mysql_query($sql, $connect);
   $linhas = mysql_num_rows($tabela);

	 if($linhas>0)
	 for($x=0; $x<$linhas; $x++){
	 $ra_aluno = mysql_result($tabela,$x,'ra_aluno');
	 $aluno->setRa_aluno($ra_aluno); // setando o RA Aluno
	 
	 $turma_id_turma = mysql_result($tabela,$x,'turma_id_turma');echo " <tr>";
	 $aluno->setTurma_id_turma($turma_id_turma); // setando a Turma

	 $nome_aluno = mysql_result($tabela,$x,'nome_aluno');echo " <tr>"; // nome do aluno setado acima

	 $logradouro = mysql_result($tabela,$x,'logradouro');echo " <tr>";
	 $aluno->setLogradouro($logradouro); // setando o Logradouro
	 
	 $numero = mysql_result($tabela,$x,'numero');echo " <tr>";
	 $aluno->setNumero($numero); // setando o Numero
	 
	 $bairro = mysql_result($tabela,$x,'bairro');echo " <tr>";
	 $aluno->setBairro($bairro); // setando o Bairro
	 
	 $cidade = mysql_result($tabela,$x,'cidade');echo " <tr>";
	 $aluno->setCidade($cidade); // setando a Cidade
	 
	 $estado = mysql_result($tabela,$x,'estado');echo " <tr>";
	 $aluno->setEstado($estado);  // setando o Estado
	 
	 $telefone = mysql_result($tabela,$x,'telefone');echo " <tr>";
	 $aluno->setTelefone($telefone);  // setando o Telefone
	 
	 $naturalidade = mysql_result($tabela,$x,'naturalidade');echo " <tr>";
	 $aluno->setNaturalidade($naturalidade);  // setando a Naturalidade
	 
	 $nome_pai = mysql_result($tabela,$x,'nome_pai');echo " <tr>";
	 $aluno->setNome_pai($nome_pai);  // setando o Nome do Pai
	 
	 $nome_mae = mysql_result($tabela,$x,'nome_mae');echo " <tr>";
	 $aluno->setNome_mae($nome_mae);  // setando o Nome da Mãe
	 echo "</tr>";

	 echo "<td>" . $aluno->getRa_aluno() . "</td>";
	 echo "<td>" . $aluno->getTurma_id_turma() . "</td>";
	 echo "<td>" . $aluno->getNome_aluno() . "</td>";
	 echo "<td>" . $aluno->getLogradouro() . "</td>";
	 echo "<td>" . $aluno->getNumero() . "</td>";
	 echo "<td>" . $aluno->getBairro() . "</td>";
	 echo "<td>" . $aluno->getCidade() . "</td>";
	 echo "<td>" . $aluno->getTelefone() . "</td>";
	 echo "<td>" . $aluno->getEstado() . "</td>";
	 echo "<td>" . $aluno->getNaturalidade() . "</td>";
	 echo "<td>" . $aluno->getNome_pai() . "</td>";
	 echo "<td>" . $aluno->getNome_mae() . "</td>";
}
?>

consegui...

muito Obrigado CMAC!! Você me ajudou denovo!!

Eu não entendi muito bem a sua sugestão quanto ao código:

<?public function getDadoAluno($nome = '') {
if(isset($this->dados[$nome])) {
return $this->dados[$nome];
}
return null;
}

Em que momento do meu código eu uso esse exemplo? Teria como me dar um exemplo, por favor?

Eu não entendi muito bem a sua sugestão quanto ao código:

<?public function getDadoAluno($nome = '') { 
if(isset($this->dados[$nome])) { 
return $this->dados[$nome]; 
} 
return null; 
}

Em que momento do meu código eu uso esse exemplo? Teria como me dar um exemplo, por favor?

#6 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 14/09/2008, 18:03

Dentro desta funções existem variáveis não declaradas ($linhas e $tabela). Você pode passar estes dados pela função.

Sobre a função que te disse, primeiro você precisa trabalhar com arrays, e ainda aprimorar o conhecimento em OOP. Com isso seu código ficaria muito mais estruturados e ainda com menos código.

Dentro da classe aluno, você poderia criar um método que, dado um nome, buscaria os dados no mysql e armazenasse-os no array $dados[], declarado na sua classe com acesso private. Assim, você poderia usar aquela função para pegar os dados. Por exemplo, para pegar o nome seria: $aluno->getDadoAluno('nome');

Para pegar o bairro seria a mesma função mudando somente o argumento: $aluno->getDadoAluno('bairro');

Viu como facilitaria!?

Bons estudos e boa sorte.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq