Dropdown mit Einträgen aus DB

  • Themenstarter Themenstarter ByeBye 31659
  • Beginndatum Beginndatum
B

ByeBye 31659

Hallo,

ich hab ein weiteres Problem, und zwar möchte ich mein Dropdown Menü mit den INhalten einer MySQL DB füllen, klappt auch wudnerbar.

BLoß hab cih manche Kategorien öfter und cih möchte sie nur einmal in dem Dropdown-Menü haben wie kann cih das machen?

Code:
	  echo '<select name="RubrikKat">';
	  $result = mysql_query("SELECT RubrikKat FROM seminare");
	  while($datensatz = mysql_fetch_array($result)){
	  	echo '<option value='.$datensatz['RubrikKat'].'>'.$datensatz['RubrikKat'].'</option>';
	  }
	  echo '</select>';
 
Original geschrieben von ExtremeSnail
BLoß hab cih manche Kategorien öfter und cih möchte sie nur einmal in dem Dropdown-Menü haben wie kann cih das machen?
Erstmal eine Frage: Warum hast Du denn die Kategorien mehrmals in der Datenbank stehen?

Aber um auf Deine Frage zu Antworten sollte folgende SQL-Anweisung hilfreich sein:

PHP:
<?php
/* .. */
$result = mysql_query("SELECT DISTINCT(RubrikKat) FROM seminare");
/* .. */
?>
 
Klappt wunderbar vielen Dank.

Warum ich mehrere Kategorien doppelt habe? Manchmal lässt sich das doch einfach cniht umegehen oder sehe cih das falsch? bzw manchmal lohnt der Aufwand doch cnith eine extra Tabelle anzulegen.
 
Original geschrieben von ExtremeSnail
Warum ich mehrere Kategorien doppelt habe? Manchmal lässt sich das doch einfach cniht umegehen oder sehe cih das falsch? bzw manchmal lohnt der Aufwand doch cnith eine extra Tabelle anzulegen.
Das mag schon sein, ist aber die Normalform. :)

Außerdem bist Du mit einer zweiten Tabelle, in der Du die Kategorien auslagerst, wesentlich flexibler, was das Pflegen der einzelnen Kategorien angeht. Stell Dir mal vor, aus irgendeinem Grund willst Du die Bezeichnung einer Kategorie ändern, dann musst Du jeden Datensatz ändern. Wenn die Kategorien allerdings einzeln in einer getrennten Tabelle stehen, änderst Du die Bezeichnung nur einmal und automatisch sind alle damit verbundenen Datensätze geändert.

Nur mal so ein Hinweis am Rande :)
 
Zurück