Ausgabe $array in Combobox

ich hoffe das jetzt richtig gemacht zu haben?

PHP:
$sql=mysql_query("SELECT * FROM tabel WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {

$array[] = array($row['ort'] => $row['ort']); 
foreach($array as $key => $value)
{
  echo '<option value="' . $key . '">' . $value . '</option>';
}
}

also das funktioniert nicht!
 
Wenn, dann eher so:

PHP:
$sql=mysql_query("SELECT * FROM tabel WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {

$array[] = array($row['ort'] => $row['ort']); 
}

foreach($array as $item)
{
  foreach($item as $key => $value)
  {
	echo $key . ' => ' . $value . '<br/>';
  }
}

Wobei das totaler Humbug ist, wenn ich es mal so ausdrücken darf. Mach es dir doch einfacher:

PHP:
$i = 1;
while($row=mysql_fetch_array($sql)) {
  $array[$i++] = $row['ort'];
}

foreach($array as $key => $value)
{
  echo '<option value="' . $key . '">' . $value . '</option>';
}

Oder noch einfacher und geb die Ausgabe direkte in der while-Schleife, wie ich schon oben beschrieben habe.
 
tja, weder noch! Er zeigt mir immer $row[ort] im Dropdown an. Ich werde mir mal ein einfacheres Skript suchen denke ich! Aber erstmal vielen Dank für eure Antworten!
 
Das Original:

PHP:
<?php
$array = array();
if ($_GET['_name'] == 'country') 
{
         if ( $_GET['_value'] == 3 )//usa
         {
                $array[] = array('1' => 'Montana');
                $array[] = array('2' => 'New York');    
                $array[] = array('3' => 'Texas');       
          } else
          {
                $array[] = array('0' => 'No state');
          }
} elseif ($_GET['_name'] == 'state') 
{
         if ( $_GET['_value'] == 2 )//New York
         {
                $array[] = array('1' => 'New York');
                $array[] = array('2' => 'Another city');        
          } else
          {
                $array[] = array('0' => 'No city');
        }
} else
{
        $array[] = array('1' => 'Data 1');
        $array[] = array('2' => 'Data 2');      
        $array[] = array('3' => 'Data 3');      
}
echo json_encode( $array );
?>

Und ich möchte dies:

PHP:
<?php
$array = array();
if ($_GET['_name'] == 'country') 
{
         if ( $_GET['_value'] == 3 )//usa
         {
$sql=mysql_query("SELECT * FROM table WHERE field='XXX'"); 
while($row=mysql_fetch_array($sql)) {

                $array[] = array('1' => 'Montana'); // Montana ersetzen durch $row['ort']
                $array[] = array('2' => 'New York'); // New York ersetzen durch $row['ort']   
                $array[] = array('3' => 'Texas'); // Texas ersetzen durch $row['ort']      
}
          } else
          {
                $array[] = array('0' => 'No state');
          }
} elseif ($_GET['_name'] == 'state') 
{
         if ( $_GET['_value'] == 2 )//New York
         {
                $array[] = array('1' => 'New York');
                $array[] = array('2' => 'Another city');        
          } else
          {
                $array[] = array('0' => 'No city');
        }
} else
{
        $array[] = array('1' => 'Data 1');
        $array[] = array('2' => 'Data 2');      
        $array[] = array('3' => 'Data 3');      
}
echo json_encode( $array );
?>
 
Dann vielleicht so:

PHP:
<?php
$array = array();
if ($_GET['_name'] == 'country') 
{
	if ( $_GET['_value'] == 3 )//usa
    {
		$sql=mysql_query("SELECT * FROM table WHERE field='XXX'");
		$i = 1; 
		while($row=mysql_fetch_array($sql))
		{
			$array[] = array($i++ => $row['ort'];
		}
	}
	else
	{
		$array[] = array('0' => 'No state');
	}
}
elseif ($_GET['_name'] == 'state') 
{
	if ( $_GET['_value'] == 2 )//New York
	{
		$array[] = array('1' => 'New York');
		$array[] = array('2' => 'Another city');        
	}
	else
	{
		$array[] = array('0' => 'No city');
	}
}
else
{
	$array[] = array('1' => 'Data 1');
	$array[] = array('2' => 'Data 2');      
	$array[] = array('3' => 'Data 3');      
}
echo json_encode( $array );
?>

Sorry, da war noch ein Fehler
 
Zuletzt bearbeitet:
nee, er zeigt immernoch $row['ort'] im Dropdown an! Ich finde das merkwürdig. Würde ich die Orte manuell eingeben funktioniert es einwandfrei. Über eine SQL Abfrage gehts nicht. Falls es keine Idee mehr geben sollte, versuche ich ein anderes Skript!

Danke nochmals!
 
Wir schaffen das, nur nicht aufgeben. Wie solltest du sonst was draus lernen? ;-)

Mach doch mal aus dem Code von mir:

PHP:
        $sql=mysql_query("SELECT * FROM table WHERE field='XXX'");
        $i = 1; 
        while($row=mysql_fetch_array($sql))
        {
            $array[] = array($i++ => $row['ort']);
        }

folgenden Code:

PHP:
        $sql=mysql_query("SELECT * FROM table WHERE field='XXX'");
        $i = 1; 
        while($row=mysql_fetch_array($sql))
        {
            $array[] = array($i++ => $row['ort']);
        }
        echo 'Hier der Inhalt von $array <pre>'; var_dump($array); echo "</pre>";

Was wird angezeigt?
 
Zuletzt bearbeitet:
Zurück