Pequeña pregunta de PHP

dagavi

Buenas, haciendo algunas cosillas en PHP para aprender me ha surgido una duda sobre que es mejor:
1) Poner código en HTML e ir realizando las llamadas a PHP cuando hagan falta o
2) Escribir todo (o mucho) en un bloque de PHP (<? ?> ) sacando el código HTML por "echo"

Es que veo que muchas veces para mostrar un dato (por ejemplo sacar info de una DB y listar todo lo sacado) lo meten todo en un <? ?> quedando algo como:

<?
// conexiones y demás cosas
echo '<table><tr><td> .....' $dato ' .... </table>';
?>

El código puede estar indentado, pero todo lo ejecuta el echo (otras veces meten varios echos)

Sin embargo a mi me parece más facil (que no se si será peor, por eso pregunto) hacer el código más en plan HTML y realizar las llamadas cuando haga falta:

<?
// Conexiones y cosas de PHP
?>
<table>
<tr>
<td><?=$dato?></td>
</tr>
</table>

¿Cual de las dos formas es más correcta? ¿O no importa y es simplemente decisión del que lo realiza?

SnAoW

Buenas,

Esque la primera forma que tu dices

"<?
// conexiones y demás cosas
echo '<table><tr><td> .....' $dato ' .... </table>';
?>"

el poner echo ' tablas etc.. ' ; se utiliza casi siempre porque es la mejor manera de sacar bases de datos en tablas es decir de hacer whiles, for do etc... para que me entiendas:

Si yo quiero sacar los registros del 1 al 10 con hacer

while ( ....) { echo '.$dato.' ; }

..

Ya me sacaria:

1
2
3
4
...

en cambio de la forma que tu dices no se podria hacer, la forma que tu dices es muy buena si no vas ha hacer tablas que saquen grandes registros y vas a sacar cosas muy puntuales (como "Bienvenido <?=$nick '>" ) o para una web muy sencilla.

Espero que me hayas entendido a pesar de que me he explicado bastante mal.

Un saludo!

D

Yo uso las 2 cosas.. hago al web en html, con codigo php, i lo k saco de bases de datos i demas a traves de php rllo "echo '<table> .... </table>';"

dagavi

#2 Pero por ejemplo un while que vaya metiendo filas (o lo que sea) a una tabla para sacar datos también se puede hacer sin meterlo todo dentro de "echo", ejemplo de lo que he hecho:

http://pastebin.es/1655

Este código funciona y saca los datos de una DB y los muestra en un tabla y muestra todas las noticias (en este ejemplo) sacadas de la DB

Pero por lo que veo que me decís da igual usar un tipo o otro (vamos, que parece que no influye negativamente en rendimiento)

SnAoW

Esque depende para lo que vayas a usarlo, si es un texto HTML muy simple (como el que me has pasado) yo veo mas facil hacerlo de la forma que yo digo, ahora si es un codigo HTML mas complicado que meta tambien JS pues la forma que has dicho tu puede salir mejor porque te evitas muchos conflictos de "syntaxsis error '; etc.."

Es segun lo que te convenga, tambien existe una cosa que es lo "ideal" pero esque no me acuerdo como se llamaba.. era un app que te separaba totalmente el codigo PHP del HTML era la ostia pero ya hace tiempo que no se de el...

Yo cuando trabajo con paginas grandes siempre hago lo mismo:

include head.inc;
include tables.inc;
include left.inc;

...

y asi y en cada include(.inc) voy metiendo codigo php y lo menos que pueda de html y en el index.php meto todo el HTML que pueda.

Un saludo

erdanblo

echo hace trabajar al servidor más al servidor, al tener que correr el módulo php más el servir la web, mientras que el servir el html no tienes por que correr el php para nada.

dagavi

Gracias a todos por la info :D

SeiYa

Fácil, todo el HTML que puedas, muéstralo en HTML sin el PHP ya que ahorrarás carga al servidor ya que esos trozos de código fuera de los bloques PHP no les tocará y pasarán directamente al cliente siendo el navegador el que los interprete.

YavestruZ

Yo creo que es mejor: (ejemplo)
<?php
$cosa = mysql_query(...);
while($cosa2 = mysql....($cosa)){
?>
ballablaablab <?=$cosa2[....]; ?>
<?php
}
?>

que

<?php
$cosa = mysql_query(...);
while($cosa2 = mysql....($cosa)){

echo 'ballablaablab $cosa2[....]';
}
?>

En parte será porque como uso DW el 95% de las veces me gusta ver en la pestaña de diseño lo que esta dentro del while y no tener que imaginarmelo/probarlo cada segundo.

Soltrac

El primer método que describes #9 es el q se utiliza en ASP y ASP .NET

Aún así, la premisa es utilizar html lo máximo posible, está claro para evitar llamar al servidor inutilmente.

YavestruZ

#10 vaya por dios, ya tengo algo aprendido para cuando me meta en ASP :D, xD.

SeiYa

A ver, en ASP podrás hacerlo llamando o no al servidor ... como tu quieras ... y en ASP.net también puedes hacerlo, otra cosa es que como en .net usas el editor visual pues no lo quieras hacer para conservar el diseño y verlo.

Usuarios habituales

  • SeiYa
  • YavestruZ
  • Soltrac
  • dagavi
  • erdanblo
  • snaow
  • d3a6l3