template

Index :: PHP/MySQL :: Allgemein :: Gliederung von PHP und HTML

Besonders die Anfangsphase eines Projekts ist gekennzeichnet von diversen Tests, in denen der Entwickler den Datenbankzugriff prüfen und die passenden Queries ausprobieren muss. Hierzu kann reiner PHP-Code verwendet werden; die Ausgaben erfolgen mittels echo().
<?php
include('glob.inc.php');

mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);

$result = mysql_query("SELECT Vorname,Nachname FROM benutzer ORDER BY Nachname");
while ($row = mysql_fetch_row($result)) {
  echo $row[0], ", ", $row[1], "<br>\n";
}
?>
Sobald alles zufriedenstellend funktioniert, kommt ein HTML-Grundgerüst hinzu, um das Erscheinungsbild der Seite zu formen. Was den HTML-Header betrifft, so ist man geneigt, ihn an den Anfang der Seite zu stellen:
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
include('glob.inc.php');

mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);

$result = mysql_query("SELECT Vorname,Nachname FROM benutzer ORDER BY Nachname");
while ($row = mysql_fetch_row($result)) {
  echo $row[0], ", ", $row[1], "<br>\n";
}
?>
</body></html>
Dies ist zwar kein Fehler, behindert jedoch die spätere Pflege des wichtigen PHP-Codes. Wie man sieht, ist er nämlich nach unten gerutscht; falls noch CSS- oder Javascript-Code in den <head>-Bereich eingefügt werden, muss man wahrscheinlich schon nach unten blättern, um die ersten PHP-Zeilen zu finden.
Besser ist es, den PHP-Code immer an den Anfang zu setzen, und den HTML-Header folgen zu lassen:
<?php
include('glob.inc.php');

mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);

$result = mysql_query("SELECT Vorname,Nachname FROM person ORDER BY Nachname"); ?>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
while ($row = mysql_fetch_row($result)) {
  echo $row[0], ", ", $row[1], "<br>\n";
}
?>
</body></html>
Erfahrungsgemäß ist es gerade dieser einleitende PHP-Block, in dem später die meisten Änderungen und Erweiterungen vorgenommen werden müssen:
Deshalb ist es von Vorteil, ihn grundsätzlich am Skriptanfang zu plazieren, um ihn nach Öffnen der Datei sofort vor Augen zu haben.
Im Übrigen wäre es unlogisch, einen HTML-Header auszugeben, wenn sich aufgrund einer nachfolgenden Prüfung (z.B. Authentifizierung) herausstellt, daß die Seite gar nicht gezeigt werden darf/kann, sondern eine alternative Seite angesprungen werden muss (die natürlich ihren eigenen HTML-Header besitzt).

Index :: PHP/MySQL


template