template

Index :: PHP/MySQL :: Allgemein :: echo() oder HTML?

Die Art und Weise, in der ein Skript entsteht, differiert von Entwickler zu Entwickler. Kommt er aus der Designer-Ecke, dann schreibt er wahrscheinlich zuerst ein HTML-Grundgerüst - evtl. bereits CSS-formatiert - und fügt anschließend an relevanten Stellen den PHP-Code ein. Kommt er aus der Programmierer-Ecke, dann schreibt er wahrscheinlich zuerst den essentiellen PHP-Code und umkleidet das Ganze anschließend mit dem HTML-Layout.
Beide Strategien führen letztlich zum selben Ergebnis und sind so gesehen gleichberechtigt. Allerdings hat die Designer-Strategie den psychologischen Vorteil, dass relativ früh das Look-and-Feel der Seite entsteht.

So oder so, bei beiden Strategien stellt sich manchmal die Frage, wie HTML-Code ausgegeben werden soll:
Selbstverständlich könnte man das gesamte HTML mithilfe von PHP-Funktionen ausgeben, aber damit wäre das Skript schwer les- und pflegbar. Hier ein extremes Beispiel:
<?php
echo "<table><tr><td>Name</td></tr>";
while ($row = mysql_fetch_array($result)) {
  echo "<tr><td>";
  if ($row['Anrede']==1) echo "<img src='mann.gif'> ";
  else                   echo "<img src='frau.gif'> ";
  echo htmlentities($row['Nachname']);
  echo "</td></tr>";
}
echo "</table>";
?>
Da man bestrebt sein sollte, Code und Layout zu trennen, wäre folgende Variante schon besser:
<table>
<tr>
<td>Name</td>
</tr>
<?php while ($row = mysql_fetch_array($result)) { ?>
<tr>
<td><?php
  if ($row['Anrede']==1) { ?><img src='mann.gif'> <?php }
  else                   { ?><img src='frau.gif'> <?php }
  echo htmlentities($row['Nachname']); ?></td>
</tr>
<?php } ?>
</table>
Hier könnte man die Ausgabe des Bildnamens sogar noch etwas kompakter schreiben:
<table>
<tr>
<td>Name</td>
</tr>
<?php while ($row = mysql_fetch_array($result)) { ?>
<tr>
<td><img src='<?php echo ($row['Anrede']==1)? "mann": "frau"; ?>.gif'> <?php
  echo htmlentities($row['Nachname']); ?></td>
</tr>
<?php } ?>
</table>
In der Praxis hat es sich bewährt, eher der Designer-Strategie zu folgen, d.h. der Seiteninhalt wird zuerst komplett im HTML-Layout erstellt, um einen Eindruck von der Oberfläche (indirekt: der Bedienbarkeit) zu erhalten. In Datentabellen werden dazu einige repräsentative Dummyzeilen benutzt.
Anschließend kann man sich darauf konzentrieren, an den dynamischen Stellen PHP-Code einzusetzen.

Index :: PHP/MySQL


template