Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa, beleza galera? sou novo aqui, então não sei se estou postando no lugar certo. caso esteja no lugar errado, peço sinceras desculpas.
Seguinte, sou novo na orientação a objetos, vi várias coisas a respeito, e então decidi criar um projeto orientado a objetos.
Resolvi fazer todos os selects do projeto, em uma unica classe.
Para isso usei o seguinte pensamento: no momento de instanciar, informaria os campos da tabela, a tabela, a clausula e outros parâmetros.
Isso eu consegui completar, porém veio o desafio maior: fazer exibir esses dados.
minha ideia inicial era fazer com que ao instanciar o método Executar(), criaria os itens de uma tabela, e exibiria os dados. Eu consegui fazer isso também, porém, isso funcionaria apenas em tabelas que exibiria as propriedades na horizontal, ou seja:
------ Código ------ Local --------
------ 1 ------ teste --------
e caso acontecesse em algum momento de ocorrer alguma coisa do tipo abaixo, seria impossível:
Código---- 1 ----- 2 ----- 3
Local --teste1-teste2---teste1
E outro caso mais comum que também não funcionaria, seria os dados exibidos em text field, text area, list menu, etc. e ai sim percebi que isso que fiz, não é tão útil quanto pensei que seria.
Então pensei, pensei, pensei, e não consegui chegar em nenhuma conclusão.
Por isso, vim aqui pedir a ajuda de vocês.
Segue abaixo os scripts para que vocês entendam melhor(não vou estar postando o script de conexão, pois não acredito ser útil.
SQL.class.php
<?php
class BuscarDados{
private $AtributosTabela;
private $Tabela;
private $Clausula;
private $Parametros;
private $BuscaDados;
function __construct($AtributosTabela, $Tabela, $Clausula, $Parametros)
{
$this->AtributosTabela = $AtributosTabela;
$this->Tabela = $Tabela;
$this->Clausula = $Clausula;
$this->Parametros = $Parametros;
}
## Função para realizar a busca dos dados.
final function Buscar()
{
// Verifica se o campo da tabela foi especificado, se não foi, ele busca todos os campos(*) para incluir no select.
if( $this->AtributosTabela == "" || $this->AtributosTabela == "*" )
{
$busca_campos = mysql_query("SHOW COLUMNS FROM ".$this->Tabela); $i = 0;
while( $mostra_campos = mysql_fetch_array($busca_campos) )
{
if($i == 0)
$string_campos = $mostra_campos['Field'];
else
$string_campos = $mostra_campos['Field'].", ".$string_campos;
$i++;
}
$this->AtributosTabela = $string_campos; // Aqui a variavel recebe todos os campos da tabela em forma de string.
}
else if( $this->Clausula == "" )
$this->Parametros = "";
else if( $this->Parametros == "" )
$this->Clausula == "";
$this->BuscaDados = mysql_query("SELECT ".$this->AtributosTabela." FROM ".$this->Tabela." ".$this->Clausula." ".$this->Parametros);
}
## Função que mostrará os dados obtidos na tela.
function Executar()
{
$this->AtributosTabela = explode(',',$this->AtributosTabela);
$i = 0;
while($exibeDados = mysql_fetch_array($this->BuscaDados))
{
echo "<tr>";
echo "<td>";
while($i < count($this->AtributosTabela))
{
echo $exibeDados[trim($this->AtributosTabela[$i])]."</td>";
$i++;
if($i <> count($this->AtributosTabela))
echo "<td>";
}
echo "</td>";
echo "</tr>";
$i = 0;
}
}
}
?>
teste.php
<?php include_once 'config.php'; ?>
<?php include_once 'SQL.class.php'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$string = new BuscarDados('age_cod, age_local','agenda','','');
?>
<table width="200" border="1">
<tr>
<td>AGENDA_LOCAL</td>
<td>AGENDA_COD</td>
</tr>
<?php echo $string->Buscar(); ?>
<?php echo $string->Executar(); ?>
</table>
<p> </p>
</body>
</html>
peço ajuda de vocês, para achar um caminho melhor para a listagem de dados, pois todas que vi por ai, apenas fazem listar sem considerar que devem ser listadas em uma tabela, div ou inputs.
Muito obrigado, e desculpe se não fui muito específico. aguardo respostas dos mais "vividos" na orientação a objetos.
Carregando comentários...