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.

<samp> Logische Auszeichnung

CSS - HTML-Elemente als Tabelle formatieren

PHP - Lange Wörter mit Leerzeichen teilen

JavaScript - htmlEntities für JavaScript

MySQL - Datum (DATETIME) in ein deutsches Datumsformat umwandeln

Seitentitel
Der Seitentitel ist sehr wichtig <title> Seitentitel </title>, in diesem Teil vorkommende Wörter werden von den Suchmaschinen besonders stark gewertet. Außerdem, wenn die Seite zu den Favoriten/Bookmarks hinzugefügt wird, wird dort auch der Seitentitel angezeigt. Oder können Sie sich unter einem Bookmark mit dem Namen "Seite 2" etwas vorstellen??
Tipp: Wechseln Sie einfach mal zu den diversen Suchdiensten wie Google oder Bing! und geben Sie dort als Suchbegriff "NEWPAGE" ein. Ich habs versucht und schlappe 22000 Treffer erzielt. "INDEX" hat noch mehr ergeben.