Ir para conteúdo

POWERED BY:

Arquivado

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

renanziNhu

PHP entre codigos HTML

Recommended Posts

Olá pesso a ajuda de vcs pq sou novato em PHP, fiz um sistema de noticia e coloquei na página principal do site, funcionou tudo corretamente, e gostaria de saber se estou fazendo certo.

 

código abaixo

 

 <tr>
       <td><?

require ("admin/noticias/conectdb.php");

$sql = "SELECT * FROM noticias ORDER BY id DESC LIMIT 3";


$limite = mysql_query("$sql");

while  ($sql = mysql_fetch_array ($limite) ) {


$arquivo = $sql['arquivo'];
$id = $sql['id'];
$fonte = $sql['fonte'];
$titulo = $sql['titulo'];
$subtitulo = $sql['subtitulo'];
$texto = $sql['texto'];
$data = $sql['data'];



?>
<table width="100%" border="0" cellspacing="2" cellpadding="3">
         <tr>
           <td width="8%"><a href="<? echo"ver_noticia.php?id=$id";?>"><img src="<? echo"admin/noticias/$arquivo";?>" alt="" width='50' height="39" border="0" align="texttop"/></a></td>
           <td width="92%"><span class="textopequeno"><b><? echo"$titulo";?></b></span><br>
             <span class="textopequeno"><? echo"$subtitulo";?></span><br>
             <span class="textopequeno"><? echo"$data";?></span></td>
         </tr>
       </table>
	<? } ?>
	</td>
     </tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao se acostume a usar

 

<?=$sql['var']?>

 

pois alguns hosts desabilitam shor tags....

 

Além disto, no PHP 6 não vai mais ter esta opção. Então reforço a opinião do Igor.php. Acostume a não usar <?=.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade misturar código de persistência junto com apresentação não é um bom modelo. Procure sobre padrões como MVC onde você consegue separar as responsabilidades de cada parte do seu código. Diversos frameworks no mercado hoje implementam este padrão (Zend Framework, Cake PHP, etc).

Aproveite que você é iniciante e não tem 'vícios' para aprender do jeito certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure sobre padrões como MVC onde você consegue separar as responsabilidades de cada parte do seu código.

 

Outro padrão (que tenho utilizado e gostado) é 5-tier. Ao contrário do MVC que é 3-tier (M-> Model, V-> View, C-> Controller) no 5-tier:

 

1. Presentation Gui (relacionado a interface de usuário, o próprio navegador ou as janelas no caso de aplicações desktop, ex: PHP-GTK)

2. Presentation Logic (Recupera as informações da Business Logic e monta os dados para a Presentation GUI)

3. Business Logic (Essa é a camada de negócios, é onde temos todas as regras do negócio e também as exceções)

4. Data Access (Essa é a camada que conversa com o banco de dados, recupera e insere as informações)

5. Data Tier (É a camada do banco de dados, pode ser qualquer sistema de armazenamento de dados)

 

A grande vantagem do modelo N-Tier é que as camadas são totalmente independentes. Isso basicamente significa que se eu modificar meu banco de dados de MySQL para Oracle basta eu trocar a string de conexão e adaptar algumas queries que a aplicação nem sentirá a mudança; Ou se eu quiser ter uma interface de usuário diferente para um navegador ou para um telefone, ou ainda ter uma interface rodando em desktop e outra web, a aplicação será exatamente a mesma, mudarei apenas a presentation logic/presentation gui.

Outra vantagem (no meu ponto de vista) é que, como tenho utilizado SOAP em muitos projetos, eu posso ter cada camada funcionando em um lugar totalmente distinto, e se necessário trocar uma camada específica para um servidor que possa me atender melhor comercialmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem 2 formas de escrita... <?= que corresponde a <?php echo. A primeira opção só funciona quando a configuração de short_tag está em ON. Porque não é indicado usar a primeira forma? Porque no PHP 6 será desabilitada esta opção, porque muitos hosts já estão com esta configuração em OFF e porque (não tenho certeza desta última) a sintaxe é igual a alguma outra linguagem de programação, podendo gerar erro.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Presta atenção nas modificações:

 

<tr>
        <td><?php

(file_exists('admin/noticias/conectdb.php')) ? include('admin/noticias/conectdb.php') : false;

$limite =mysql_query("SELECT * FROM noticias ORDER BY id DESC LIMIT 3")or die(mysql_error());

while($sql = mysql_fetch_array ($limite) ) {


$arquivo = $sql['arquivo'];
$id = $sql['id'];
$fonte = $sql['fonte'];
$titulo = $sql['titulo'];
$subtitulo = $sql['subtitulo'];
$texto = $sql['texto'];
$data = $sql['data'];



?>
<table width="100%" border="0" cellspacing="2" cellpadding="3">
          <tr>
            <td width="8%"><a href="<?php echo 'ver_noticia.php?id='.$id; ?>"><img src="<?php echo 'admin/noticias/'.$arquivo; ?>" alt="" width='50' height="39" border="0" align="texttop"/></a></td>
            <td width="92%"><span class="textopequeno"><b><?php echo $titulo; ?></b></span><br>
              <span class="textopequeno"><?php echo $subtitulo; ?></span><br>
              <span class="textopequeno"><?php echo $data; ?></span></td>
          </tr>
        </table>
                <?php } ?>
                </td>
      </tr>

 

1 - Não utilize as tags do PHP ao modo: <? ?> use sempre <?php ?> que é o correto e garantido.

 

2 - Não é necessário nem viável utilizar ASPAS DUPLAS em variáveis como você fez: "$var".

 

3 - Aprenda a concatenar: <?php echo 'ver_noticia.php?id='.$id; ?>

 

4 - Para apenas string, use apóstrofos.

 

5 - Para sistemas, utilize sempre a query direta com a adição do or die() caso aja erros.

 

6 - Procure utilizar a verificação da existência do arquivo de config antes de chamá-lo.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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