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.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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