ID statt Value aus Dropdowns auslesen ?

AlexD1979

Erfahrenes Mitglied
Hallo

Ich fülle meine Dropdowns in PHP dynamisch über eine Datenbankabfrage. So weit so gut. Allerdings ist es nicht sonderlich toll, in einer Datenbank nicht die Funktion der Referentiellen Integrität zu nutzen und immer auf Textwerte zu referenzieren.

Daher würde ich gerne meine Dropdowns zwar mit Text füllen, aber jeder Eintrag soll eine ID haben. Diese soll bei einer Selektion zurückgegeben werden und nicht der value-Wert, der an der Stelle der Text wäre.

Aus dieser Tabelle soll der Dropdown gefüllt werden. Im Moment lese ich nur das Feld Marke aus und fülle es in das Dropdown.
z.B. Tabelle Autos:

ID Marke
0 Audi
1 BMW
2 Opel

Dabei bleibt natürlich die ID unbewertet, denn mehrspaltige Dropdowns gibt es nicht.

Gibt es sowas wie getID() bzw getSelectedIndex() in PHP? In Java gibt es das.
 
So kannst Du die ID übergeben und die Marke anzeigen lassen:
PHP:
<select name="ID">
<option value="0">Audi</option>
<option value="1">BMW</option>
<option value="2">Opel</option>
</select>

MfG
Hans
 
Original geschrieben von hans_schmid
So kannst Du die ID übergeben und die Marke anzeigen lassen:
PHP:
<select name="ID">
<option value="0">Audi</option>
<option value="1">BMW</option>
<option value="2">Opel</option>
</select>


MfG
Hans

Hallo Hans
Ich verwende folgendes Tag zum füllen meiner Dropdown:

PHP:
<?php  
	  echo "<select name=site>";
	while($row = mysql_fetch_object($site_erg))
	{
		echo "<option value='$row->site'>$row->site</option>";
	}
	echo "</select>";
	?>

Soll ich dann umstellen zu?

PHP:
echo "<option value='$row->ID'>$row->site</option>";
 
Genau, dann wird nur die ID übergeben, das was der User sieht ( das zwischen den Optiontags) ist also nur so eine Art Maske
 
Hmm
Das funktioniert nicht so richtig.
Er zeigt mir zwar die richtige Anzahl von Zeilen an, aber die sind alle leer.

Der SQL:
Code:
$query_site = "SELECT * FROM test_inventar.SITE order by site";
$site_erg = mysql_query($query_site, $dbh);

in der PHP ist nun:
PHP:
<?php  
	  echo "<select name=site>";
	while($row = mysql_fetch_object($site_erg))
	{
		echo "<option value='$row->idSITE'>$row->site</option>";
	}
	echo "</select>";
	?>

Meine Tabelle in MySQL sieht so aus:
DB Name test_inventar
Tabelle: SITE
Spalten
idSITE INT auto_increment ist Primär, Unique und Index
SITE VARCHAR(20)

Es scheint also ein Problem zu geben, das richtig umzusetzen. Leider ist php sehr pingelig, was Groß- und Kleinschreibung von SQL_Results angeht.
 
Dann schreib site mal groß.

Also:
PHP:
<?php 
      echo "<select name=site>"; 
    while($row = mysql_fetch_object($site_erg)) 
    { 
        echo "<option value='$row->idSITE'>$row->SITE</option>"; 
    } 
    echo "</select>"; 
    ?>
 
Verd***** Groß und Kleinschreibung *G*

Danke das war schon der Fehler....

Ich glaube ich mache lieber mal alles klein schreiben, dann gibt es dann keine Missverständnisse
 
Zurück