En ese script ke pones cada línea de codigo es interpretada por PHP, los echos arrojan el resultado al navegador, si se ha entrado en el while.
Sin embargo, por la propia naturaleza de la web, el código HTML no necesita ser parseado de ninguna manera, como sabemos PHP lo único ke hace al final es entregar HTML al cliente. ¿Para ké parsear pues echos ke solo contienen HTML? Con el concepto básico de server-side también sabemos ke PHP es un lenguaje embebido en el código HTML y ke los tags <? ?> sirven para abrir y cerrar el "modo" PHP.
Entonces ese script deberia kedar asi:
Código PHP:
<?php
include ("conexion.php");
$selec = mysql_query("SELECT * FROM noticias ORDER BY id DESC");
while ($row = mysql_fetch_array($selec)) {
?>
<table width="45%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><h3><?=$row[titulo]?></h3></td>
</tr>
<tr>
<td><h5><?=$row[nom]?></h5></td>
</tr>
<tr>
<td><?=$row[noticia]?></td>
</tr>
<tr>
<a href="borrar.php?id=<?=$row[id]?>">Esborrar</a>
</tr>
</table><br />
<?
}
?>
Este código es mucho más claro, limpio y rápido, ahorramos al preprocesador un montón de líneas a interpretar, ke de cualkier modo iban a ser código HTML.
saludos