Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LuanMartinsTI

HTML & PHP

Recommended Posts

Sempre percebi algumas criticas quanto a mistura de HTML e PHP, vou confessar que misturo sim, entre uma das minhas visões o seguinte:

A estruturação do html em php me da tambem o beneficio de comentarios serve-side ao inves do uso do que é visivel no codigo fonte é possivelmente abre o site a araques caso alguma informação preciso esteja escrita.

 

um exemplo de como costumo misturar.

<div id="w_ultimas">
                        <h1>mais visitadas da semana</h1>
                        <div id="nt">
                        <?php
                            $noticia = new NoticiaPDO();
                            $ultimas = $noticia->mais_lidas($Quantidade);
                            if($ultimas != null){
                                foreach($ultimas as $x){
                                    $ultimadata    = $x['data_post'];
                                    $not_titulo    = $x['titulo'];
                                    $not_banner    = $x['banner'];
                                    $not_descricao = $x['descricao'];
                                    $not_tema      = $x['tema'];
                                    $not_conteudo  = $x['conteudo'];
                                    ?>
                                    <table style="margin-top:30px; ">
                                        <tr>
                                            <td style="display: inline; width: 100px; height: 100px; overflow: hidden;">
                                                <img style="display: inline; width: 100px; height: 100px; overflow: hidden;" src="<?php echo $not_banner ?>">
                                            </td>
                                            <td style="padding-left: 10px; ">
                                                <h2 title="<?php echo $not_titulo ?>" style="color: #333333; font-family: arial; font-size: 16px; font-weight: bold;"><?php echo substr(strip_tags($not_titulo),0, 20)."..." ?></h2>
                                                <p style="font-family: calibri; color: #666666"><?php echo substr(strip_tags($not_conteudo),0, 100)."..." ?></p>
                                            </td>
                                        </tr>
                                    </table>
                                    <?php
                                }
                            }                        
                        ?>
                        </div>
                    </div>

Se fazer isso é uma má pratica, como deveria fazer, não vejo vantagem nenhuma em ficar criando arquivos php separado para pequenos trechos de códigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@LuanMartinsTI, beleza!

Sua questão é pertinente, vou passar o meu ponto de vista, nada do que eu dizer é absoluto, fica em aberto para quem quiser contribuir e passar também a sua experiencia:


Uma das questões principais, se refere a separação de responsabilidade e reaproveitamento de código, por exemplo:
Se em outros lugares da sua aplicação você precisar pegar novamente as noticias mais lidas, terá que repetir o mesmo trecho que usou nessa pagina acima. E se uma outra aplicação também precisar das noticias mais lidas, terá que refazer o mesmo código novamente e assim vai...
Mudanças sempre ocorrem, imagine que agora o padrão das notícias mais lidas é ter também o autor? Se esse código estiver em 20 lugares, terá que ir em cada um para fazer as alterações. Porem, se noticiasMaisLidas estivesse encapsulada uma classe/função/arquivo a parte, bastaria fazer apenas uma alteração para atualizar tudo simultaneamente.

Eu sou dos que defendem que no front deve ter apenas html, css e javascript,  nada de PHP, nem includes ou tags PHP alguma, nem templates engine como Twig ou blad, pois assim o front-end ficaria desacoplado do back-end

Se no front tiver apenas html, css e javascript, você pode trocar o back-end de php para ruby, python, java, c# ou fazer um mistura deles sem precisar alterar uma letra sequer nas views, fora outros benefícios de ganho de processamento que não vem ao caso agora.

Para concluir com um exemplo pratico, imagine por exemplo que você vende templates prontos, o que você iria preferir, vender templates que só funcionem com php, ou que funcionem com qualquer linguagem?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha opinião sobre isso, eu trabalha basicamente com PHP apenas, porém, praticamente todo o layour é baseado no html ( se não 100% dele), como não gosto de trabalhar com HTML puro, e muito menos com folhas de estilo, compro templates quando preciso, mas ainda sim acabava tendo de escrever.

 

A solução, não sei é a melhor, porém, funciona, e me ajuda a não ter que escrever gigantescas páginas HTML, eu tenho algumas classes com métodos para geração de HTML, por exemplo:

 

Esse método gera as options de um <select>

 

<?php
class htmlElements{
public function render_select_input_options($array, $selected) {
        $options = '';
        foreach ($array as $row) {
            $code = $row['code'];
            $name = $row['name'];
            if ($code == $selected) {
                $options .= "<option value='$code' selected>$name</option>";
            } else {
                $options .= "<option value='$code'>$name</option>";
            }
        }
        echo $options;
    }
}

Ou esse outro para gerar linhas de tabelas:

 

<?php
public static function render_tr_by_data($data) {
        $tr = '';
        foreach ($data as $row) {
            $sub_sector = $row['sub_sector'];
            $tr .= '<tr>';
            $tr .= "<td class='center'><i class='fa fa-circle-o'></i><br></td>";
            $tr .= "<td><span>" . $row['name'] . "</span></td>";
            $tr .= "<td class='center'><div class='cl-effect-13'><a href='#' data-relationship='" . $row['code'] . "' class='exec_open_" . $sub_sector . "_data row_code_" . $row['code'] . "'>Visualizar</a></div></td>";
            $tr .= '</tr>';
        }
        return $tr;
    }

 

Mas uma observação importante, eu tenho esses padrões nos projetos, por isso eles servem pra mim.

 

A vantagem que eu vejo nisso é agilidade  de produção, menos necessidade de debugar o HTML, porque se ocorre um erro, você ja sabe onde ta, além de poder comentar server -side como você disse.

 

Mas eu realmente não sei até que ponto é bom ou ruim fazer isso, acredito que seja melhor na reutilização do código, mas talvez perca um pouco em desempenho, porque antes de printar, ele precisa passar pelos parâmetros das classes no PHP.

 

~ Também gostaria de ter uma resposta 'verdadeira' sobre isso.

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito não ter uma resposta absoluta para isso. Eu mesmo injeto PHP no HTML em 100% dos projetos que tenho.

Mas é por ser leigo: Eu não faço a minima ideia de como insertar conteúdos vindo de um banco no HTML sem usar PHP.

Uma hora ou outra, o PHP vai ter que interagir com o HTML...

 

Eu pessoalmente faço da seguinte maneira.

 

Crio uma classe aonde resgato os objetos vindos do banco... exemplo:

class Blog extends Query
{
	/**
	* Armazena um array com as informações
	* enviadas pelo usuário, atraves do método __set
	* @var String
	*/
	public $storage;

	/**
	* Guarda uma propiedade na caixa
	* @param String $index
	* @param String|Integer $value
	* @return String 
	*/
	public function __set($index, $value){
		$this->storage[$index] = addslashes($value);
		return $this->storage[$index];
	}

	/**
	* Recupera uma propiedade na caixa
	* @param String $index
	* @return String|Integer
	*/
	public function __get($index){
		if(array_key_exists($index, $this->storage)){
			return $this->storage[$index];
		}
	}

	/**
	* Carregam os dados guardados de uma única tabela
	* no banco de dados
	* @return Array com registros
	*/
	public function load($debug = false, $order = null, $limit = null){
		$object = "";
		$arrayTabela = array("sistema_blog b");
		$query = $this->select()->from(implode(",", $arrayTabela));
		if(!empty($this->storage)){
			if(!is_null($this->storage) || count($this->storage) != false){
				$i = 0;
				foreach($this->storage as $index => $data){
					if(!is_numeric($data)){
						$value = "'".$data."'";
					}else{
						$value = (integer)$data;
					}
					if($i == 0){
						$query->where($index." = ".$value);
					}
					else{
						$query->andWhere($index." = ".$value);
					}
					$i++;
				}
			}
		}
		if(!empty($order)){
			$query->order($order);
		}
		if(!empty($limit)){
			$limit = explode(",", $limit);
			$query->limit($limit[0], $limit[1]);
		}
		if($debug){
			echo $query."<br />";	
		}
		try {
			$objConnect = Conexao::connect();
			$objResult = $objConnect->query($query);
			$object = $objResult->fetchAll(PDO::FETCH_ASSOC);
		}
		catch (Exception $e){
			$object = null;
		}
		return $object;
	}
}

 

E quando quero trazer os posts do blog, por exemplo, na index, faço da seguinte maneira...

 

<div class="row">
	<?php

        $objBlog = new Blog();
        $resultadoBlog = $objBlog->load(false,"bloDataVeiculacao DESC","0,4");

        if(!empty($resultadoBlog)){
        	foreach($resultadoBlog as $post){
                $divBlog .= "
                <div class=\"col-sm-3\">
                    <a href=\"/blog/".$post['bloAlias']."\" title=\"".$post['bloTitulo']."\" class=\"post\">
                        <img src=\"\" class=\"img-responsive\" alt=\"".$post['bloTitulo']."\">
                        <h3>".$post['bloTitulo']."</h3>
                        <p>Resumo [...]</p>
                        <span class=\"autor\">
							<img src=\"".$avatarThumb."\" title=\"".$post['cadNome']."\" class=\"img-circle\">
							<p>Postado por <strong>".$post['cadNome']."</strong><br>em ".format_date($post['bloDataVeiculacao'],"d/m/Y")."</p>
						</span>
                    </a>
                </div>";
            }
        }

        // * Caso não tenha
        else{
        	$divBlog = "<p class=\"col-sm-12\">Nenhum post foi encontrado.</p>";
        }

        echo $divBlog;

	?>
</div>

Como pode ver, uma hora ou outra eu misturo o HTML com o PHP. E sinceramente, não sei se há outra maneira de fazer isso. Mas desta maneira, consigo otimizar bastante o recurso de load/insert/update/remove do banco.

 

No fim das contas, é o mesmo que você faz.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, EdCesar disse:

@LuanMartinsTI, beleza!

Sua questão é pertinente, vou passar o meu ponto de vista, nada do que eu dizer é absoluto, fica em aberto para quem quiser contribuir e passar também a sua experiencia:


Uma das questões principais, se refere a separação de responsabilidade e reaproveitamento de código, por exemplo:
Se em outros lugares da sua aplicação você precisar pegar novamente as noticias mais lidas, terá que repetir o mesmo trecho que usou nessa pagina acima. E se uma outra aplicação também precisar das noticias mais lidas, terá que refazer o mesmo código novamente e assim vai...
Mudanças sempre ocorrem, imagine que agora o padrão das notícias mais lidas é ter também o autor? Se esse código estiver em 20 lugares, terá que ir em cada um para fazer as alterações. Porem, se noticiasMaisLidas estivesse encapsulada uma classe/função/arquivo a parte, bastaria fazer apenas uma alteração para atualizar tudo simultaneamente.

Eu sou dos que defendem que no front deve ter apenas html, css e javascript,  nada de PHP, nem includes ou tags PHP alguma, nem templates engine como Twig ou blad, pois assim o front-end ficaria desacoplado do back-end

Se no front tiver apenas html, css e javascript, você pode trocar o back-end de php para ruby, python, java, c# ou fazer um mistura deles sem precisar alterar uma letra sequer nas views, fora outros benefícios de ganho de processamento que não vem ao caso agora.

Para concluir com um exemplo pratico, imagine por exemplo que você vende templates prontos, o que você iria preferir, vender templates que só funcionem com php, ou que funcionem com qualquer linguagem?

 

Gostei bastante da sua opinião, porem surgiu uma duvida, uma pagina html sem mesmo include(require) como vou incluir o php na pagina? pois entendo que n preciso ter as funções do php dentro da pagina html, mas n vejo uma forma de fazer algo como o código que mostrei sem ter html dentro do php, então a forma que vi seria, faria a pagina Html, e algumas php com determinado tipo de função, ou até mesmo dentro da classe de execução das funções do objeto, ai daria um require, ou apenas chamaria a função, mas precisaria usar php no arquivo para fazer a chamada, tanto do método, ou require(include) do arquivo, a não se que faça um iframe q já morreu a muito tempo, como seria essa forma que explicou? tem algum?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

3 minutos atrás, LuanMartinsTI disse:

ou até mesmo dentro da classe de execução das funções do objeto,

 

Mas nesse caso, ja que esta usando de Orientação a Objeto, você pode usar um autoload, e instanciar as classes sem precisar dar include de arquivos pra montar as páginas, você vai montar com métodos  apenas tratando respostas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, AnthraxisBR disse:

 

 

Mas nesse caso, ja que esta usando de Orientação a Objeto, você pode usar um autoload, e instanciar as classes sem precisar dar include de arquivos pra montar as páginas, você vai montar com métodos  apenas tratando respostas.

 

Sim, eu uso, mas no caso preciso incluir uma classe, a configuração, mais nada. fica + - assim

 

<?php
    require_once './inc/config.inc.php';
    $NoticiasPDO = NEW NoticiaPDO();
?>
<!DOCTYPE html>
<!--
    Created on : ${date}, ${time}
    Author     : Luan Martins Gomes
    Contact    : LuanMartinsTI@Outlook.com
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title><?php echo NOMESITE ?></title>
        <link href="<?php echo RAIZ ?>/css/1440/index.css" rel="stylesheet" type="text/css"/>
        <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
        <!--<meta http-equiv="refresh" content="1;index.php">-->
    </head>
    <body>
        <?php
            require_once './menu/menu.php';
            require_once './sistemasolar.html';
        ?>
        <div id="container_geral">
            <div id="container_geral_usavel" style="">
                <div id="container_noticias" style="">
                    <?php
                    // Notícia em destaque
                        $ultimadata = 0;
                        $result_noticias = $NoticiasPDO->selecionar_noticias('Notícia', '>',$ultimadata, 1);
                        if($result_noticias != false){
                            foreach ($result_noticias as $x) {
                                $ultimadata    = $x['data_post'];
                                $not_titulo    = $x['titulo'];
                                $not_banner    = $x['banner'];
                                $not_descricao = $x['descricao'];
                                ?>
                                    <div id="noticia_destaque" style="background-image: url('<?php echo $not_banner ?>');">
                                        <h1 class="titulos nd_titulo"><a href="#"><?php echo $not_titulo ?></a></h1>
                                        <h2 class="nd_tema"><?php echo "Ciências" ?></h2>
                                    </div>
                                <?php
                            }
                        }
                    ?>
                    <div id='mais_noticias'>
                    <?php
                    // Mais notícias
                    
                        $result_noticias = $NoticiasPDO->selecionar_noticias('Notícia','<', $ultimadata, 3);
                        if($result_noticias != false){
                            $cont_not = 0;
                            foreach ($result_noticias as $x) {
                                $not_titulo    = $x['titulo'];
                                $not_banner    = $x['banner'];
                                $not_descricao = $x['descricao'];
                                $cont_not ++;
                                if($cont_not == 2){
                                    $classe_css_div = 'segundo_box';
                                    $classe_css_txt = 'segundo_txt';
                                }else if($cont_not == 3){
                                    $classe_css_div = 'terceiro_box';
                                    $classe_css_txt = 'terceiro_txt';
                                }
                                ?>
                            <div id="box_mais_noticias">
                                <div class='mais_noticias <?php echo $classe_css_div ?>' style="background-image: url('<?php echo $not_banner ?>') ">                                 
                                    <h2 class="mn_tema"><?php echo "Ciências" ?></h2>
                                </div>
                                <h2 class="mn_titulo">
                                    <a href="#" class='titulos mn_titulo_link <?php echo $classe_css_txt ?>'><?php echo $not_titulo ?></a>
                                </h2>
                            </div>
                                <?php
                            }
                        }
                    ?>
                    </div>
                </div>
                <div id='container_noticias_right'>
                    <div id='container_curiosidades'>
                        <?php
                            $ultimadata = 0;
                            $noticias_curiosidades = $NoticiasPDO->selecionar_noticias('Curiosidade', '>', $ultimadata, 3);
                            if($noticias_curiosidades != FALSE){
                                foreach ($noticias_curiosidades as $x){
                                    $not_titulo    = $x['titulo'];
                                    $cur_banner    = $x['banner'];
                                    $not_descricao = $x['descricao'];
                                    ?>
                        <div class="container_curiosidades">
                            <div id="c_curiosidades_banner" style="background-image: url('<?php echo $cur_banner ?>') ">
                                <h2 class="cc_tema"><?php echo "Curiosidades" ?></h2>
                            </div>
                            <h2 class="cc_titulo">
                                <a href="#" style="color: #9900ff;" class='cc_titulo_link'><?php echo $not_titulo ?></a>
                            </h2>
                        </div>
                                    <?php
                                }
                            }
                        ?>
                    </div>
                    <div id='container_astrologia'>
                        <?php
                            $ultimadata = 0;
                            $noticias_astrologia = $NoticiasPDO->selecionar_noticias('Astrologia', '>', $ultimadata, 3);
                            if($noticias_astrologia != FALSE){
                                foreach ($noticias_astrologia as $x){
                                    $not_titulo    = $x['titulo'];
                                    $cur_banner    = $x['banner'];
                                    $not_descricao = $x['descricao'];
                                    ?>
                                        <div class="container_curiosidades">
                                            <div id="c_curiosidades_banner" style="background-image: url('<?php echo $cur_banner ?>') ">
                                                <h2 class="cc_tema_as"><?php echo "Astrologia" ?></h2>
                                            </div>
                                            <h2 class="cc_titulo">
                                                <a href="#" style="color: #009900;" class='cc_titulo_link'><?php echo $not_titulo ?></a>
                                            </h2>
                                        </div>
                                    <?php
                                }
                            }
                        ?>
                    </div>
                </div>                
            </div>
            <div id="container_tv">
                <div style="width:100%; height:100%; background: rgba(0,0,0,0.7) ">
                <div id="container_tv_usavel">
                    <div id="container_filmes">
                    <?php
                        $ultimadata = 0;
                        $filmes = $NoticiasPDO->selecionar_noticias('Filmes', '>', $ultimadata, 1);
                        if($filmes != FALSE){
                            foreach ($filmes as $x){
                                $ultimadata      = $x['data_post'];
                                $filme_titulo    = $x['titulo'];
                                $filme_banner    = $x['banner'];
                                $filme_descricao = $x['conteudo'];
                                ?>
                                    <div id="filme_destaque">
                                        <div id="banner_filme_destaque" style="background-image: url('<?php echo $filme_banner ?>') ">
                                            <h2 class="bf_tema_as"><?php echo "Filme de Ficção Cientifica" ?></h2>
                                        </div>
                                        <h2 class="bf_titulo">
                                            <a href="#" style="color: #ccccff;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                <br>
                                                <font style="font-size: 16px; color: white; font-weight: normal; ">
                                                    <?php echo substr(strip_tags($filme_descricao),0, 155)."..."; ?>
                                                </font>
                                            </a>                                
                                        </h2>
                                    </div>
                                <?php
                            }
                        }$filmes = $NoticiasPDO->selecionar_noticias('Filmes', '<', $ultimadata, 3);
                        if($filmes != FALSE){
                            foreach ($filmes as $x){
                                $filme_titulo    = $x['titulo'];
                                $filme_banner    = $x['banner'];
                                $filme_descricao = $x['conteudo'];
                                ?>
                                    <div id="mais_filmes">
                                        <div id="banner_mf" style="background-image: url('<?php echo $filme_banner ?>') " >
                                            
                                        </div>
                                        <div id='txt_filmes'>
                                            <h2 class="txt_titulo">
                                                <a href="#" style="color: #ccccff;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                    <br>
                                                    <font style="font-size: 16px; color: white; font-weight: normal; ">
                                                        <?php echo substr(strip_tags($filme_descricao),0, 100)."..."; ?>
                                                    </font>
                                                </a>                                
                                            </h2>
                                        </div>
                                    </div>
                                <?php
                            }
                        }
                    ?>
                    </div>
                    <div id='container_documentarios'>
                        <?php
                            $ultimadata = 0;
                            $filmes = $NoticiasPDO->selecionar_noticias('Documentarios', '>', $ultimadata, 1);
                            if($filmes != FALSE){
                                foreach ($filmes as $x){
                                    $ultimadata      = $x['data_post'];
                                    $filme_titulo    = $x['titulo'];
                                    $filme_banner    = $x['banner'];
                                    $filme_descricao = $x['conteudo'];
                                    ?>
                                        <div id="filme_destaque">
                                            <div id="banner_filme_destaque" style="background-image: url('<?php echo $filme_banner ?>') ">
                                                <h2 class="bf_tema_as"><?php echo "Materia & Documentario" ?></h2>
                                            </div>
                                            <h2 class="bf_titulo">
                                                <a href="#" style="color: #ccffcc;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                    <br>
                                                    <font style="font-size: 16px; color: white;  font-weight: normal;">
                                                        <?php echo substr(strip_tags($filme_descricao),0, 155)."..."; ?>
                                                    </font>
                                                </a>                                
                                            </h2>
                                        </div>
                                    <?php
                                }
                            }$filmes = $NoticiasPDO->selecionar_noticias('Documentarios', '<', $ultimadata, 3);
                            if($filmes != FALSE){
                                foreach ($filmes as $x){
                                    $filme_titulo    = $x['titulo'];
                                    $filme_banner    = $x['banner'];
                                    $filme_descricao = $x['conteudo'];
                                    ?>
                                        <div id="mais_filmes">
                                            <div id="banner_mf" style="background-image: url('<?php echo $filme_banner ?>') " >

                                            </div>
                                            <div id='txt_filmes'>
                                                <h2 class="txt_titulo">
                                                    <a href="#" style="color: #ccffcc;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                        <br>
                                                        <font style="font-size: 16px; color: white; font-weight: normal; ">
                                                            <?php echo substr(strip_tags($filme_descricao),0, 100)."..."; ?>
                                                        </font>
                                                    </a>                                
                                                </h2>
                                            </div>
                                        </div>
                                    <?php
                                }
                            }
                        ?>
                    </div>
                    <div id='container_livros'>
                        <?php
                            $ultimadata = 0;
                            $filmes = $NoticiasPDO->selecionar_noticias('Livros', '>', $ultimadata, 1);
                            if($filmes != FALSE){
                                foreach ($filmes as $x){
                                    $ultimadata      = $x['data_post'];
                                    $filme_titulo    = $x['titulo'];
                                    $filme_banner    = $x['banner'];
                                    $filme_descricao = $x['conteudo'];
                                    ?>
                                        <div id="filme_destaque">
                                            <div id="banner_filme_destaque" style="background-image: url('<?php echo $filme_banner ?>') ">
                                                <h2 class="bf_tema_as"><?php echo "Livros" ?></h2>
                                            </div>
                                            <h2 class="bf_titulo">
                                                <a href="#" style="color: #ccffff;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                    <br>
                                                    <font style="font-size: 16px; color: white;  font-weight: normal;">
                                                        <?php echo substr(strip_tags($filme_descricao),0, 140)."..."; ?>
                                                    </font>
                                                </a>                                
                                            </h2>
                                        </div>
                                    <?php
                                }
                            }$filmes = $NoticiasPDO->selecionar_noticias('Livros', '<', $ultimadata, 3);
                            if($filmes != FALSE){
                                foreach ($filmes as $x){
                                    $filme_titulo    = $x['titulo'];
                                    $filme_banner    = $x['banner'];
                                    $filme_descricao = $x['conteudo'];
                                    ?>
                                        <div id="mais_filmes">
                                            <div id="banner_mf" style="background-image: url('<?php echo $filme_banner ?>') " >

                                            </div>
                                            <div id='txt_filmes'>
                                                <h2 class="txt_titulo">
                                                    <a href="#" style="color: #ccffff;" class='bf_titulo_link'><?php echo $filme_titulo ?>
                                                        <br>
                                                        <font style="font-size: 16px; color: white; font-weight: normal; ">
                                                            <?php echo substr(strip_tags($filme_descricao),0, 100)."..."; ?>
                                                        </font>
                                                    </a>                                
                                                </h2>
                                            </div>
                                        </div>
                                    <?php
                                }
                            }
                        ?>
                    </div>
                </div>
                </div>
            </div>
            <!--
            <div id='container_tops'>
                <div id='tops_filme'>
                    <h1 class="titulos " ><i class="fa fa-video-camera" aria-hidden="true"></i> Filme da Semana</h1>
                </div>
                <div id='tops_filme'>
                    
                </div>
                <div id='tops_filme'>
                    
                </div>
            </div>
            -->
        </div> 
        <?php
            require_once './footer.php';
        ?>
    </body>
</html>

Como pode ver, tem PHP d + no html

 

a forma que pensei com os comentarios seus, seria criar as funções dentro da classe noticiasPdo e apenas chama-las na pagina html

 

class NoticiaPDO extends Conn{
    //put your code here
    private $Resultado = null;
    private $Criar;
    private $Conn;
    private $Selecionar;
    
    public function __construct() {
        $this->Conn = parent::getConn();
        $Msg = "Erro critico, entre em contato com o administrador do sistema!";
    }
    
    public function inserir_noticia($noticia){
        try{
            echo '<pre>' . print_r($noticia) . '</pre>';
            $query = "INSERT INTO noticias VALUES('NULL',:titulo, :banner, :descricao, :conteudo, :anuncio_1, :anuncio_2, :data, :autor, :tema)";
            $this->Criar = $this->Conn->prepare($query);
            $this->Criar->bindValue(':titulo'    , $noticia->getTitulo()   , PDO::PARAM_STR);
            $this->Criar->bindValue(':banner'    , $noticia->getBanner()   , PDO::PARAM_STR);
            $this->Criar->bindValue(':descricao' , $noticia->getDescricao(), PDO::PARAM_STR);
            $this->Criar->bindValue(':conteudo'  , $noticia->getConteudo() , PDO::PARAM_STR);
            $this->Criar->bindValue(':anuncio_1' , $noticia->getConteudo() , PDO::PARAM_STR);
            $this->Criar->bindValue(':anuncio_2' , $noticia->getConteudo() , PDO::PARAM_STR);
            $this->Criar->bindValue(':data'      , $noticia->getData()     , PDO::PARAM_STR);
            $this->Criar->bindValue(':autor'     , $noticia->getAutor()    , PDO::PARAM_INT);
            $this->Criar->bindValue(':tema'      , $noticia->getAnuncio()  , PDO::PARAM_STR);
            $this->Criar->execute();
            if($this->Criar->rowCount() == 1){
                return true;
            }  else {
                return false;
            }
        } catch (PDOException $ex) {

        }
    }
    
    
    public function selecionar_noticias($tema, $operadorlogico,$ultimadata, $quantidade){
        try{
            $validOperators = array('=', '>=', '>', '=<', '<');    
            if (!in_array($operadorlogico, $validOperators)) {
               throw new Exception('Operador invalido $operadorlogico ' . $operadorlogico);
            }
            $query = "SELECT * FROM noticia WHERE tema = :tema AND data_post $operadorlogico :data ORDER BY data_post DESC  LIMIT :quantidade";
            $this->Selecionar = $this->Conn->prepare($query);
            $this->Selecionar->bindParam(':tema'      , $tema           , PDO::PARAM_STR);
            $this->Selecionar->bindParam(':data'      , $ultimadata     , PDO::PARAM_STR);
            $this->Selecionar->bindParam(':quantidade', $quantidade     , PDO::PARAM_INT);
            $this->Selecionar->execute();
            if($this->Selecionar->rowCount() > 0){
                return $this->Selecionar->fetchAll(PDO::FETCH_ASSOC);
            }
        } catch (PDOException $ex) {

        }
    }
    
    public function pegar_noticia(){
        try{
            $query = "SELECT * FROM noticia LIMIT 1";
            $this->Selecionar = $this->Conn->prepare($query);
            $this->Selecionar->execute();
            if($this->Selecionar->rowCount() > 0){
                return $this->Selecionar->fetchAll(PDO::FETCH_ASSOC);
            }
        } catch (PDOException $ex) {

        }
    }
    public function ultimas_noticia($Quantidade){
        try{
            $query = "SELECT * FROM noticia WHERE tema <> 'Filmes' ORDER BY id DESC LIMIT :quantidade";
            $this->Selecionar = $this->Conn->prepare($query);
            $this->Selecionar->BindValue(':quantidade', $Quantidade, PDO::PARAM_INT);
            $this->Selecionar->execute();
            if($this->Selecionar->rowCount() > 0){
                return $this->Selecionar->fetchAll(PDO::FETCH_ASSOC);
            }
        } catch (PDOException $ex) {

        }
    }
    public function mais_lidas($Quantidade){
        try{
            $query = "SELECT * FROM noticia WHERE tema <> 'Filmes' ORDER BY visualizacao DESC LIMIT :quantidade";
            $this->Selecionar = $this->Conn->prepare($query);
            $this->Selecionar->BindValue(':quantidade', $Quantidade, PDO::PARAM_INT);
            $this->Selecionar->execute();
            if($this->Selecionar->rowCount() > 0){
                return $this->Selecionar->fetchAll(PDO::FETCH_ASSOC);
            }
        } catch (PDOException $ex) {

        }
    }
    public function ultimos_filmes($Quantidade){
        try{
            $query = "SELECT * FROM noticia WHERE tema = 'Filmes' ORDER BY id DESC LIMIT :quantidade";
            $this->Selecionar = $this->Conn->prepare($query);
            $this->Selecionar->BindValue(':quantidade', $Quantidade, PDO::PARAM_INT);
            $this->Selecionar->execute();
            if($this->Selecionar->rowCount() > 0){
                return $this->Selecionar->fetchAll(PDO::FETCH_ASSOC);
            }
        } catch (PDOException $ex) {

        }
    }
}

algumas funções ae, estão zuadas, fiz apenas para ver como já estava saindo os resultados, mas é + - isso que pensei nos comentários seus, criar as funções dentro da classe e apenas chama-las.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pense na arquitetura de seu projeto.

Qual design pattern deseja seguir.

Quais ferramentas irá utilizar. (Frameworks terceirizados ou próprios).

Adapte seu conhecimento a esse planejamento.

A melhor ferramenta é seu conhecimento.

 

Abstração entre código lógico e código arquitetural é sempre uma boa pedida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.