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.

<rp> Ruby Anmerkung

CSS - Aufzählungslisten einfärben

PHP - Ein kleiner PHP-Jahreskalender

JavaScript - Seite laden oder erneut laden

MySQL - Die 10 neusten Einträge einer Tabelle anzeigen

Prägnante Linkbeschreibungen
Auch Links sind im Textfluss eine Art von Hervorhebungen. Sinnvollerweise sollten einzelne Wörter oder kurze Sätze als Link fungieren und nicht etwa ganze Textabsätze.