Select mit Werten aus Array oder Query

Guten Morgen,

bis jetzt konnte mir bei meinem Problem noch niemand so eichtig helfen und ich sitze schon eine Woche daran, habe auch schon mal in einem anderen Forum gefragt.

Das Problem:
Ich habe ein Select was mit Daten aus einem Array gefüllt wird, trifft eine Bedingung zu kommen die Daten aus einer Tabelle.

Ich habe das bis jetzt so gelößt:

if ($wer=='1') { 							
$listeVarB.= "\t<option value=\"Keine Auswahl getroffen\">Bitte auswählen</option>\n"; 
while($rowEB = mysql_fetch_assoc($qebEB)) { 
if ($rowEB['bezeb'] == stripslashes($FPostVb)){
$listeVarB .= "\t<option value=\"".$rowEB['bezeb']."\" selected='selected'>".$rowEB['bezeb']."</option>\n";
		} else {
	$listeVarB.= "\t<option value=\"".$rowEB['bezeb']."\">".$rowEB['bezeb']."</option>\n";						
	}							
	}  // ende while($row = mysql_fetch_assoc($listeEB))
						
	} else { 	

		$varfeldb = array(
				"Keine Auswahl getroffen"			=>"Bitte auswählen",
				"Word"								=>"Word",
				"Excel"						  		=>"Excel",
				"andere" 							=>"andere"
				 ); 
				 
			$listeVarB = '';
			if (!empty($FPostVb)) {
				foreach ($varfeldb as $keyVarFeb => $valuVarFeB) {
					if ($keyVarFeb != '-' && ($keyVarFeb == $FPostVb)){
						$listeVarB .= "\t<option value=\"".$keyVarFeb."\" selected='selected'>".$valuVarFeB."</option>\n";
					} else {
						$listeVarB .= "\t<option value=\"".$keyVarFeb."\">".$valuVarFeB."</option>\n";
					}// ende for
				}
			} else {
				foreach ($varfeldb as $keyVarFeb => $valuVarFeB) {
					$listeVarB .= "\t<option value=\"".$keyVarFeb."\">".$valuVarFeB."</option>\n";
						} // ende for
				
					}}

Also im Prinzip 2 Selects.

Meine Idee war jetzt $keyVarFeb und $valuVarFeB in die If Anweisung zu ändern, so das ich nur ein Select brauche und nur die beiden geändert werde,

[quote]if ($wer==‘1’) {
$varfeldb = array(
“Keine Auswahl getroffen” =>“Bitte auswählen”,
“Word” =>“Word”,
“Excel” =>“Excel”,
“andere” =>“andere”
);

} else {
$varfeldb = array(
“Keine Auswahl getroffen” =>“Bitte auswählen”,

 [/quote]

jetzt müsste man irgendwie das Ergebnis der Abfrage hier reinbekommen, was ich ja noch hinbekomme, aber die Schleife wird nicht durchlaufen.

Hat jemand einen Tipp?

Vielen Dank

könntest du das ganze etwas übersichtlicher Anschreiben? Ich kenn mich da nicht aus :ps:

Jo Einrückung ist ziemlich verwirrend :astonished:

Ich versuchs mal.

Mein Formular hat ein Listenfeld, je nach Bedingung mit anderen Werten.
Jetzt habe ich das Eine Listenfeld Zwei mal getippt. Je nach Bedingung
Ich wollte aber das Listenfeld nur einmal tippen und ´die Werte je nach Bedigung einlesen.

[code]if ($wer==1){
{

while($rowEB = mysql_fetch_assoc($qebEB)) {

<?php $rowEB['bezeb']?> } else { $varfeldb = array( "Keine Auswahl getroffen" =>"Bitte auswählen", "Word" =>"Word", "Excel" =>"Excel", "andere" =>"andere" ); foreach ($varfeldb as $keyVarFeb => $valuVarFeB) { <?php $valuVarFeB ?> } } // zu if[/code]

Das erste Select ist gefüllt mit Daten aus einer Abfrage
Das zweite Select mit Daten aus einem assoziativen Array
Wenn wer = 1, dann wird das Select mit Daten aus der Abfrage angezeigt, wenn micht mit Werten aus dem Array.

Ich dachte das kann man auch einfacher machen, nicht zwei Listen tippen sondern die Beschreibung und die Werte der Liste in die If Anweisung setzen.
Das bekomme ich aber nicht hin.

Ich würde nur

[code]if ($wer==1) {
$varfeldb = array(
“Keine Auswahl getroffen” =>“Bitte auswählen”,
$rowEB[‘bezeb’] =>$rowEB[‘bezeb’],
“andere” =>“andere” );
}else {

$varfeldb = array(
“Keine Auswahl getroffen” =>“Bitte auswählen”,
“Word” =>“Word”,
“Excel” =>“Excel”,
“andere” =>“andere” );
}

foreach ($varfeldb as $keyVarFeb => $valuVarFeB) {

<?php $valuVarFeB ?>[/code]

aber da klappt der Durchlauf nicht, es wird nur ein Wert (aus Abfrage) angezeigt.
Was ja auch normal ist.
Ich hoffte einer hat ne bessere Idee.

Danke

das ist ja einfach :ps:

if(BEDINGUNG)
{
  $listenfelder = array();

   while($row = mysql_fetch_assoc($sql))
      $listenfelder[] = $row['feld'];

   $listenfelder[] = "andere"; //Hier könntest du noch andere hinzufügen
}
else
{
   $listenfelder = array("...");
}

foreach($listenfelder as $one)
  echo "<option>$one</option>";

so in etwa?

Hallo,

Ich danke Dir.
Ich wusste nicht, das das auch geht $listenfelder = array();… Du hast mich aus einer tiefen Kriese gerettet;)

Ein Miniproblem existiert noch, zwar nicht in diesem Fall Da Schlüssel und Werte ja gleich sind, aber wie würde
$listenfelder = array();
aussehen, wenn Schlüsel und Wert unterschiedlich sind? Und so das foreach as …=>…auch noch stimmt.

Vielen Dank.:slight_smile:

if(BEDINGUNG)
{
  $listenfelder = array();

   while($row = mysql_fetch_assoc($sql))
      $listenfelder[$row['name']] = $row['titel'];

   $listenfelder['other'] = "Andere"; //Hier könntest du noch andere hinzufügen
}
else
{
   $listenfelder = array(
      'word' => "Word",
      'excel' => "Excel",
      );
}

foreach($listenfelder as $name => $titel)
  echo "<option name='$name'>$titel</option>";

Sag mal, wo steht so was? Ich meine das mit dem ersten teil, das aus der Datenbank.
Ich habe hier gesuchthttp://www.php-einfach.de/php-tutorial/php-array.php aber da bin ich nur zum zweiten Teil fündig geworden

Das ist super, vielen Dank. Ich bin beeindruckt. :wink2:

at2.php.net/mysql_fetch_assoc

:ps: