Datenbankinhallte in Formular ?

DJmension

Mitglied
Hallo allerseits , ich hab jetzt versucht über suche einen zu meinem Problem Passendes Thema zu finden, leider bislang ohne erfolg !

Ich habe mir ein Formular zurecht Gezimmert in dem ich eigentlich aus einer Datenbank die inhallte als Dropdown zur auswahl gennerieren lassen möchte.

Leider habe ich keine ahnung wie ich das bewerkstelligen sollte. Hier mal einen auszug meines Formulars:

Code:
<tr>
	<td width="176">erwischt von:&nbsp; </td>
	<td width="271">
	<select size="12" name="erwischt" tabindex="4">
	<option value="Name1">Name1</option>
	<option value="Name2">Name2</option>
	<option value="Name3">Name3</option>
	<option value="Name4">Name4</option>
	<option value="Name5">Name5</option>
	<option value="Name6">Name6</option>
	<option value="Name7">Name7</option>
	</select></td>
</tr>

wie bekomme ich den inhallt von der DB Tabelle "erwischt" in dieses dropdown ?
 
Zuletzt bearbeitet:
PHP:
<?

echo '<tr>
	<td width="176">erwischt von:&nbsp; </td>
	<td width="271">
	<select size="12" name="erwischt" tabindex="4">';

while($row = mysql_fetch_assoc($result)){

echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
}
 
echo '</select></td>
</tr>';

?>
 
Danke dir erstmal tausendfach , funktioniert sehr gut :-)

Nun steh ich aber wieder vor einem Problem , welches sicherlich lösbar ist , nur weiß ich Anfänger leider noch nicht wie !

Und zwar hab ich jetzt gelernt wie ich mit hilfe von Get inhallte in ein Formular zur bearbeitung übergeben kann. Das von dir wunderbare teil sollte nun irgendwie ein Get enthallten und dieses als selected markieren ....
Code:
<? 
echo '<tr> 
    <td width="176">erwischt von:&nbsp; </td> 
    <td width="271"> 
    <select size="12" name="erwischt" tabindex="4">';
$query = "SELECT name FROM userS20";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

while($row = mysql_fetch_assoc($result)){ 

echo '<option value="'.$row['name'].'">'.$row['name'].'</option>'; 
} 
  
echo '</select></td> 
</tr>'; 
?>

Ich denke mal das es so nicht gehen wird
Code:
<? 
echo '<tr> 
    <td width="176">erwischt von:&nbsp; </td> 
    <td width="271"> 
    <select size="12" name="erwischt" tabindex="4">';
echo '<option selected value="'= $_GET['erwischt']'">'= $_GET['erwischt']'</option>'; 
$query = "SELECT name FROM userS20";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

while($row = mysql_fetch_assoc($result)){ 

echo '<option value="'.$row['name'].'">'.$row['name'].'</option>'; 
} 
  
echo '</select></td> 
</tr>'; 
?>

Ich will meine Seite nicht zerschießen desswegen frage ich erst um nicht durch unsicherheit einen schlimmen fehler zu machen, die Leute die sich auskennen erst ob das so möglich ist ?
 
Zuletzt bearbeitet:
nö geht leider nicht , auch nach diversen änderungen , bekam ich den fehler 500 die Seite kann nicht geladen werden , also muß in meiner idee ein fehler sein , heul :-((

Könnte das eventuell mit einer IF anwendung Funktionieren ? Ich hab keine Ahnung Bitte Hilfeeeee !
 
Zuletzt bearbeitet:
PHP:
echo '<select size="12" name="erwischt" tabindex="4">';
echo '<option selected value="'= $_GET['erwischt']'">'= $_GET['erwischt']'</option>'; 
// Deine "=" Zeichen sind zuviel du schreibst ja im php Code also nur 
echo '<option value="'.$_GET['erwischt'].'">'.$_GET['erwischt'].'</option>';
 
PHP:
echo '<select size="12" name="erwischt" tabindex="4">';
echo '<option selected value="'= $_GET['erwischt']'">'= $_GET['erwischt']'</option>'; 
// Deine "=" Zeichen sind zuviel du schreibst ja im php Code also nur 
echo '<option value="'.$_GET['erwischt'].'">'.$_GET['erwischt'].'</option>';
... womit wir beim Thema XSS wären.

Hier das Gleiche ohne XSS, dafür selektiert
PHP:
<?php
/* ... */
echo('<option value="'.htmlspecialchars($_GET['erwischt']).'" selected="selected">'.htmlspecialchars($_GET['erwischt']).'</option>');
/* ... */
?>

Außerdem würde ich den Inhalt von "erwischt" unbedingt überprüfen.
Damit meine ich Dinge, wie die Länge, die dir dein Layout zerschießen kann.
Falls du den Inhalt nicht abändern möchtest, weil du ihn z.B. noch benötigst, dann greif auf CSS zurück.
PHP:
<?php
echo('<select style="width:125px; overflow:hidden;" size="12" name="erwischt" tabindex="4">'); 
?>
 
Zuletzt bearbeitet:
Ich will nicht unhöflich erscheinen, aber das was ihr mir hier anbietet ist gut und klasse , aber nur nicht das wonach ich gefragt habe.... etwas weiter oben ist zu finden
Und zwar hab ich jetzt gelernt wie ich mit hilfe von Get inhallte in ein Formular zur bearbeitung übergeben kann. Das von dir wunderbare teil sollte nun irgendwie ein Get enthallten und dieses als selected markieren ....

Nach langer Experimentier Phase ist es gelungen das Problem zu lösen , als ich es hatte hab ich mir an den Kopf gefasst , Wie sooooo einfach ist das ?

Lösung meines Problems
Code:
<? 
echo '<tr> 
    <td width="176">erwischt von:&nbsp; </td> 
    <td width="271"> 
    <select size="12" name="erwischt" tabindex="4">';
$query = "SELECT User FROM userS20";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

while($row = mysql_fetch_assoc($result)){ 
$selected = '';
if( $row['User'] == $_GET['erwischt'] )
$selected = 'selected';
echo '<option '.$selected.' value="'.$row['User'].'">'.$row['User'].'</option>'; 
} 
  
echo '</select></td> 
</tr>'; 
?>

Für alle die die auch Verzeifelt danach suchen und 48 Stunden auf Hilfe hoffen.

LG euer DJmension
 
Achso,
tut mir leid, dann habe ich dich missverstanden.
Naja, demnächst Probleme etwas konkreter beschreiben.
Bis dann.
 
Zurück