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($options2);
echo 
$html;
?>

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<div> Allgemeines Block-Element

CSS - Listenelemente einfärben

PHP - Anzahl der Bilder in einem Verzeichnis auslesen

JavaScript - Checkbox auf "unbestimmt" setzen

MySQL - Das Datum und die Uhrzeit der letzten Stunde anzeigen