* @version 2.0 (2017-07-19) * * Hiermit wird unentgeltlich, jeder Person, die eine Kopie dieses Skripts erhält, die Erlaubnis erteilt, * diese uneingeschränkt zu benutzen, inklusive und ohne Ausnahme, dem Recht, sie zu verwenden, zu kopieren, * zu ändern, zu fusionieren, zu verlegen, zu verbreiten, zu unterlizenzieren und/oder zu verkaufen, und * Personen, die dieses Skript erhalten, diese Rechte zu geben, unter den folgenden Bedingungen: * * Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien des * Skripts beizulegen. * * DAS SKRIPT WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER * GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, * JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN * ODER SONSTIGE ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER * ANDERS IM ZUSAMMENHANG MIT DEM SKRIPT ODER SONSTIGER VERWENDUNG DES SKRIPTS ENTSTANDEN. */ /** * Erzeugt aus zwei Spalten einer Datenbank-Tabelle eine HTML-Optionsliste. * @param PDO $pDatabase Das PDO, mit dem auf die Datenbank zugegriffen werden soll. * @param string $pDatabaseTable Der Name der Datenbank-Tabelle. * @param string $pValueColumn Der Name des Tabellenspalte mit den Indexwerten. * @param string $pLabelColumn Der Name der Tabellenspalte mit den Beschriftungen. * @param mixed $pSelectedValue (optional) Der Indexwert der aktuellen Auswahl. * @return string Die in HTML ausgezeichnete Optionsliste. */ function createOptionList($pDatabase, $pDatabaseTable, $pValueColumn, $pLabelColumn, $pSelectedValue = 0) { /* Überprüfe, ob $pDatabase existiert und ein Objekt der Klasse PDO ist. */ if ($pDatabase == null || !is_a($pDatabase, 'PDO')) { return ''; } /* Bereite die übrigen Parameter vor. */ $lDatabaseTable = wrapInBackticks($pDatabaseTable); $lValueColumn = wrapInBackticks($pValueColumn); $lLabelColumn = wrapInBackticks($pLabelColumn); $lOptionList = ''; /* Abfrage zusammenstellen. */ $lQuery = 'SELECT ' . $lValueColumn . ', ' . $lLabelColumn . ' FROM ' . $lDatabaseTable . ' ORDER BY ' . $lLabelColumn; /* Abfrage durchführen und Optionsliste zusammenstellen. */ foreach ($pDatabase->query($lQuery, PDO::FETCH_NUM) as $lRow) { $lOptionList .= ''; } return $lOptionList; } /** * Schließt eine beliebige Zeichenkette in Backticks ein und maskiert bereits vorhandene Backticks. * @param string $pString Die Zeichenkette, die in Backticks eingeschlossen werden soll. * @return string Die in Backticks eingeschlossene Zeichenkette. */ function wrapInBackticks($pString) { return '`' . str_replace('`', '``', $pString) . '`'; }