PHP - Grundlagen - Programmierstile - SQL-Abfragen
1. Ein Hinweis vorab
Auch wenn ich bisher noch nicht auf SQL eingegangen bin, so solltet ihr euch das doch als eine Art von Vorbereitung durchlesen. Auch wenn ihr erst mal nur Bahnhof versteht. Die Details zu dieser Abfragesprache kommen im nächsten Hauptkapitel.
2. Das Problem
SQL-Abfragen neigen dazu, länger und immer länger zu werden. Meiner Meinung nach nimmt das proportional mit dem eigenen Wissen zu. Leider geht das zu Lasten der Lesbarkeit. Denkt nur mal an die Ungetüme, die ich euch hier um die Ohren hauen werde. Oder an das, was ihr selbst schon fabriziert habt. Selbst wenn man die Abfrage per Zeichenkettenverknüpfung in einzelne Teile zerlegt, so bringt das in Punkto Lesbarkeit herzlich wenig.
<?php
$query = 'SELECT anzahl, produkt, preis, nummer, zulieferer, ';
$query .= 'hersteller.ort FROM bestellung ';
$query .= 'LEFT JOIN produkt ON produkt.id=bestellung.pr_id ';
$query .= 'LEFT JOIN kunde ON kunde.id=bestellung.kd_id ';
$query .= 'LEFT JOIN hersteller ON hersteller.id=bestellung.hr_id ';
$query .= 'WHERE kunde.id = '.$_GET['id'];
?>
3. Die Lösung
Ist eigentlich so einfach, dass ich Superhirn (Ironie) einfach nicht von selbst darauf gekommen bin. Nein, das musste ich erst bei meinem damals neuen Brötchengeber erfahren. Das Prinzip ist ganz einfach. Man schreibt seine Abfragen in etwa so wie seinen PHP-Code. Allerdings gibt es hier wieder etliche Variationen, so dass ich euch nur mal meinen Favoriten zeige.
<?php
$query = 'SELECT
anzahl,
produkt,
preis,
nummer,
zulieferer,
hersteller.ort AS ort
FROM
bestellung
LEFT JOIN
produkt ON produkt.id=bestellung.pr_id
LEFT JOIN
kunde ON kunde.id=bestellung.kd_id
LEFT JOIN
hersteller ON hersteller.id=bestellung.hr_id
WHERE kunde.id = '.$_GET['id'].'
AND anzahl > 10';
?>
Als einfache Grundregel gilt folgendes. Die SQL-Befehle wie INSERT
, UPDATE
oder SELECT
werden jeweils in eigene Zeilen geschrieben, ebenso wie die wichtigen Zusatzanweisungen, als da wären so Sachen wie
FROM
, WHERE
oder jedwede Joins-Anweisung. Tabellen- oder Spaltennamen werden eingerückt und bei
mehreren untereinander gesetzt. Hilfsanweisungen wie ON
oder AS
sollten nicht zusätzlich in neuen
Zeilen auftauchen. Man kann es auch übertreiben.
4. Fazit
Ich hoffe, ihr habt hier einen guten Einstieg in mögliche Programmierstile gefunden und beherzigt das dem entsprechend. Allerdings muss ich zu meiner Schande und der meiner Kollegen sagen, dass sich selbst die Profis nicht immer daran halten. Das liegt einfach in der Natur der Sache. Man ist mit einem Problem beschäftigt und hat weder Zeit noch Lust, sich an irgendwelche Standards zu halten. Allerdings sollte man doch zumindest versuchen, seinen Code entsprechend eigener/anderer Vorgaben gemäß umzusetzen. Im Notfall kann man den Murks auch noch später korrigieren.