Dropdown PHP MYSQL Sected ITEM

cybermailer84

Grünschnabel
Hallo,

ich habe eine Tabelle Kunde -> Hier kann man LAND auswählen und zuweisen. -> das klappt alles.
z.B. Ich weise DEUTSCHLAND zu.

Jetzt habe ich mir eine update.php geschrieben dort greife ich wieder auf den oben genannten Kunden zu um
seine Einträge zu ändern. Jetzt wird mir natürlich wieder alles angezeigt in einer Reihenfolge z.B. Österreich, Deutschland.

Das ausgewählte Land DEUTSCHLAND sollte aber idealerweise als Default sprich Platz 1 angezeigt werden.

Diesen Code verwende ich um von MySQL auszulesen:

PHP:
<?php 
							require_once '../includes/database.php';
							$pdo = Database::connect();
							   
							$sql = "SELECT land_id, land_bezeichnung FROM tbl_land"; 
							
							//BOF Dropdown
							//TODO Selected Land
							echo '<select name="land_id" >';
							
							
							//fill Dropdown
							foreach ($pdo->query($sql) as $row) {
								echo "<option value=\"" . $row['land_id'] . "\">"; 
								echo $row['land_bezeichnung']; 
								echo "</option>\n"; 
							}
							Database::disconnect();
							//EOF Dropdown
							echo '</select>';
							?>

Danke!
 
Zuletzt bearbeitet:
Die erste Frage wäre hier, woher Du weißt, was die Präferenz des Kunden ist. Wo steht beispielsweise, dass Kunde A beim letzten Mal "Deutschland" ausgewählt hat?
 
das weiss ich das ist kein problem diese info habe ich bereits aus der mysql tabelle ausgelesen und in einer variable hinterlegt... -> ich kann diese variable jetzt nur nicht verwenden da ich nicht weiss wie.

IN der Variable steht drinnen z.B. "Deutschland" oder ich kann auch die ID hinterlegen.
 
Ja, wie überträgst Du denn diese Variable? Eine Variable behält nur innerhalb einer Skriptausführung ihren Wert. Wenn Du nun aber die Daten überträgst, dann rufst Du das Skript erneut auf, und somit verliert die Variable ihren Wert.
 
Ja, das Problem habe ich nicht - mir fehlt nur die Info wie ich nun einen Vergleich anstelle und somit das default markiere.

Habe gerade diesen Befehl aufgerufen:

PHP:
<?php 
							//Testing Alert Box
							echo "<script type='text/javascript'>alert('Wert der Variable: $fk_land');</script>";
							require_once '../includes/database.php';
							$pdo = Database::connect();
							   
							$sql = "SELECT land_id, land_bezeichnung FROM tbl_land"; 
							
							//BOF Dropdown
							//TODO Selected Land
							echo '<select name="land_id" >';
							
							
							//fill Dropdown
							foreach ($pdo->query($sql) as $row) {
								echo "<option value=\"" . $row['land_id'] . "\">"; 
								echo $row['land_bezeichnung']; 
								echo "</option>\n"; 
							}
							Database::disconnect();
							//EOF Dropdown
							echo '</select>';
							?>

und die alertbox zeigt mir korrekt "DEUTSCHLAND" an. Die Variable wurde vorher mittels einem anderen Select Befehl in einem anderen Script befüllt. So wie auch die übrigen variablen wie vorname etc....

Es gibt ja auch diesen Befehl mit dem sollte es glaub ich gehen:

PHP:
$selected = ($bla['land_id'] == $land_id) ? 'selected="selected"' : '' ;

nur weiss ich nicht wie ich diesen mit dem Script korret anwende... vielleicht irre ich mich auch.
 
hab's geschafft:

PHP:
foreach ($pdo->query($sql) as $row) {
								echo "<option value=\"" . $row['land_id'] . "\" "; 
								echo $selected = ($row['land_bezeichnung'] == $fk_land) ? 'selected="selected" >' : '>' ;  
								echo $row['land_bezeichnung']; 
								echo "</option>\n"; 
							}

Danke.
 
Zurück