Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
BOm Galera, estou desenvolvendo uma Classe para comentários, a Minha Ideia é usar uma Classe para para Comentários em qualquer parte do Site.
Bom na Classe a Ideia era pegar e ao Chamar a Classe, utilizando a __construct() e bom nesta "contrução" fazer algo do tipo
function __construct($tabela,$rows,$page = "1",$location = ""){
}
$tabela -> seria a Tabela no Sql
$rows -> Seria as Colunas
$location -> no caso de Usar uma mesma tabela em Paginas Diferentes se é que entendem ehehe,
e o $page seria a pagina no caso de Haver paginação, Ou seja no Contruct eu ja faria a Consulta e Retornaria os COmentarios em um Array.
Chamando eles tipo "$comentarios->array_coments" fazendo o loop e exibindo eles.
Mais oque quero saber é seria compensativo fazer nesta classe algo assim:
COmo na contruct eu coloquei $tabela e $rows, usar um SHOWS TABLES e SHOW COLUMNS verificar se existem certo?
No caso da Tabela se não existir Imprime um erro, mais nas Colunas se eu não definisse qual seriam ele fazia o Load de todas as Colunas da Tabela, Pq isso?
Simples, armazenar a Tabela e as Colunas em Uma Variavel dentro da classe, e Utilizar ela na Função para Criar Novos Comentarios, e no arquivo que faria a ação de Enviar o Novo Comentario eu faria somente algo assim:
$comentarios->criar_novo($_POST);
Nessa função ele verificaria os dados enviado, retornava os erros se ocorrer, se não ele ja Inseria os Dados no SQL de acordo com a Tabela e Colunas Enviadas!
Compensaria Investir em Algo assim?
ehhe Vllws Amigo.
Minha Intenção mesmo era saber se compensa investir um tempo nessa class, ja que quero poupar Linhas de Codigos em algumas Áreas...
Segue a Função __construct para Observarem, e gostaria da Opinião de Alguem em relação eu sou Novo em Programação e também aprendi tudo sozinho, as vezes penso se Realmente estou aprendendo igual a Um Profissional na Área heheheheheh..
function __construct($tabela,$rows,$page = "1",$location = ""){
global $config;
$this->tabela = $tabela;
$this->array_rows = $rows;
$table_noexist = true;
$check_table = mysql_query("SHOW TABLES FROM ".$config['db_name']);
while($exe = mysql_fetch_row($check_table)){
if ($exe[0] == $this->tabela){
$table_noexist = false;
}
}
if ($table_noexist) {
$this->defalt_table();
$this->error = 'Tabela '.$this->tabela.' não existe, porém foi criada uma tabela com este nome usando as configurações padrões.';
return;
}
if (!$table_noexist) {
if (!is_array($this->array_rows) || empty($this->array_rows) || count($this->array_rows) == 0 || $this->array_rows === NULL){
$rows_null = true;
}
$coluns = array();
$check_rows = mysql_query("SHOW COLUMNS FROM ".$this->tabela);
while($exe = mysql_fetch_assoc($check_rows)){
$coluns[] = $exe['Field'];
if ($rows_null){
if ($exe['Extra'] != "auto_increment"){
$this->array_rows[] = $exe['Field'];
}else{
$this->array_rows_auto[] = $exe['Field'];
}
}
}
foreach ($this->array_rows as $key){
if (!in_array($key,$coluns)){
$this->error = 'Coluna '.$key.' não foi encontrado!';
return;
}
}
}
if ($this->configs_pages){
if ($location){
$sql_where_add = " WHERE location='".$location."'";
}
do{
if (($num_rows = mysql_num_rows(mysql_query("SELECT ".array_shift($this->array_rows)." FROM ".$this->tabela."".$sql_where_add)))%$this->configs_pages_num);
break;
}while(0);
$num_pages = ceil($num_rows / $this->configs_pages_num);
$start = ($page - 1) * $this->configs_pages_num;
$sql_limit = "LIMIT ".$start.",$rows_per_page";
$return = array("thisPage" => $page, "allPages" => $num_pages);
}
if ($this->configs_only_last && !$this->configs_pages){
$sql_limit = "LIMIT ".$this->configs_last_num."";
$return = NULL;
}
$ai = array_shift($this->array_rows_auto);
$sql = mysql_query("SELECT ".implode(",",$this->array_rows)." FROM ".$this->tabela."".$sql_where_add." ORDER BY ".$ai." DESC ".$sql_limit);
while($exe = mysql_fetch_array($sql)){
foreach ($this->array_rows as $key){
$this->array_coments[$exe[$ai]][$key] = $this->entparse($exe[$key]);
}
}
return $return;
}
Dê uma olhada aqui, é exatamente o que você quer:
:seta: http://imasters.com.br/linguagens/php/padroes-tabledatagateway-e-tablerowgateway-teoria-e-pratica