dedlfix: auf externe Datenbank zugreifen

Beitrag lesen

echo $begrüßung;

Also jetzt readfile oder include benutzen?

include wird verwendet, wenn Dateien eingebunden werden sollen und deren enthaltener PHP-Code ausgeführt werden soll. readfile() nimmt man, wenn der PHP-Code nicht ausgeführt werden soll, beispielsweise dann, wenn man gar keinen erwartet.

$sql = "SELECT * FROM apartments WHERE id apartments = ".$_GET['id']."";

Benutzereingaben unbehandelt in SQL-Statements zu übernehmen ist fahrlässig. Informiere dich zum Thema SQL-Injection und über die Funktion mysql_real_escape_string() sowie über das Feature Magic Quotes.

Was bewirkt das Anhängen eines Leerstrings? Nichts. Kann ersatzlos gestrichen werden.

$result = mysql_query($sql);
   if(mysql_num_rows($result) > 0)

Wenn die Abfrage fehlschlägt enthält $result keinen für mysql_num_rows() gültigen Wert. Dass einige mysql_*()-Funktionen im Fehlerfall ein false zurückliefern solltest du immer beachten und entsprechend behandeln.

Wenn du nur die Anzahl der Datensätze zählen willst, ist es unsinnig, sie komplett abzufragen. Damit mysql_num_rows() ein Ergebnis liefern kann, muss PHP alle Datensätze vom MySQL-Server abholen. Bei jedem mysql_query() wird dies im Hintergrund gemacht, und die Datensätze zwischengespeichert. (Die Fetch-Funktionen greifen auf diesen Zwischenspeicher zu, nicht direkt auf den MySQL-Server.) Um also nicht jede Menge unnötigen Datenverkehr zu haben, empfiehlt es sich, die COUNT()-Funktion MySQLs zu verwenden. Damit hat man eine Ergebnismenge von nur einem Wert in einer Zeile.

header("Location: apartments.php?id=".$_GET['id']."");

Abgesehen davon, dass die meisten Browser die Umleitung auch in der Form verarbeiten, verlangt die Spezifikation für den Location-Header eine vollständige URL.

echo "$verabschiedung $name";