PHP - Auswahlliste aus dem Inhalt einer DB-Spalte erstellen
<?php
// Auswahlliste aus dem Inhalt einer DB-Spalte erstellen
function select($options = []) {
$html = '';
if (sizeof($options) > 0) {
$html = '<select name="selection">' . PHP_EOL;
foreach($options as $title) {
$html .= ' <option value="' . $title . '">' . $title . '</option>'. PHP_EOL;
}
$html .= '</select>';
}
return $html;
}
// Verbindung zur Datenbank
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
// Datensätze auslesen
$select = $db->query("SELECT DISTINCT `autor` FROM `nachrichten`");
$options = $select->fetchAll(PDO::FETCH_COLUMN);
$html = select($options);
echo $html;
?>
Wichtig dabei ist, die Angabe DISTINCT
in der MySQL-Anweisung, dadurch werden doppelte Daten entfernt.
Siehe auch: Auswahlliste aus einem Array erstellen
Auswahlliste aus dem Inhalt von zwei DB-Spalten erstellen
Manchmal ist es notwendig, dass im HTML-<select> Optionsfeld das Value-Attribut einen anderen Wert enthält (zum Beispiel eine ID) um Bezug auf den Datensatz zu nehmen.
<?php
// Auswahlliste aus dem Inhalt von zwei DB-Spalten erstellen
function select($options = []) {
$html = '';
if (sizeof($options) > 0) {
$html = '<select name="selection">' . PHP_EOL;
foreach($options as $key => $title) {
$html .= ' <option value="' . $key . '">' . $title . '</option>'. PHP_EOL;
}
$html .= '</select>';
}
return $html;
}
// Verbindung zur Datenbank
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
// Datensätze auslesen
$select = $db->query("SELECT DISTINCT `id`, `autor` FROM `nachrichten`");
$options = $select->fetchAll(PDO::FETCH_KEY_PAIR);
$html = select($options);
echo $html;
?>
Siehe auch: MySQL - Abrufen eines zweispaltigen Ergebnisses in ein Array
Ein ausgewähltes Optionsfeld mit übergeben
<?php
// Ein ausgewähltes Optionsfeld mit übergeben
function select($options = [], $select) {
$html = '';
if (sizeof($options) > 0) {
$html = '<select name="selection">' . PHP_EOL;
foreach($options as $key => $title) {
$html .= ' <option value="' . $key . '"' .
($key == $select ? ' selected="selected"' : '') .
'>' . $title . '</option>'. PHP_EOL;
}
$html .= '</select>';
}
return $html;
}
// Verbindung zur Datenbank
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', 'root', '');
// Datensätze auslesen
$select = $db->query("SELECT DISTINCT `id`, `autor` FROM `nachrichten`");
$options = $select->fetchAll(PDO::FETCH_KEY_PAIR);
$html = select($options, 2);
echo $html;
?>
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen
HTML, CSS,
PHP, JavaScript und
MySQL.
<rp> Ruby Anmerkung
CSS - Aufzählungslisten einfärben
PHP - Ein kleiner PHP-Jahreskalender