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.

<noscript> Kein JavaScript!

CSS - Bilder in einem Formular auswählen

PHP - URL validieren

JavaScript - Funktion zur zufälligen Auswahl eines Bildes aus einer Bildliste

MySQL - Datensatz mit den meisten Zeichen ermitteln

Schlechte Grafiken
Bevor Sie eine schlechte Grafik verwenden, verzichten Sie lieber darauf. Schlechte Grafiken sind zum Beispiel solche mit einer anderen Hintergrundfarbe als die der Homepage. Auch den Aliasing-Effekt, bei dem die Grafik einen hässlichen Treppenstufen-Effekt hat, sollten Sie vermeiden. Verwenden Sie dazu die Anti-Aliasing, beziehungsweise Glätten-Funktion Ihres Grafikprogrammes. Schlecht sind auch schief gescannte und oder verwaschene Logos und ausgefranste Grafiken.