MySQL Daten in verschachteltes Array

Spelvin

Mitglied
Hallo Zusammen,
ich möchte gerne Daten aus einer MySQL Datenbank über ein Formular an ein P Script übergeben. Da ich ja nur ein value pro Position übergeben kann wollte ich das ganze über ein verschachteltes Array lösen.
Mein Code sieht wie folgt aus:
PHP:
$sql="SELECT * FROM material WHERE materialgruppe = '".$q."'"; 

    $result = mysql_query($sql); 
     echo "<select name=\"material[]\" >"; 
        while($row = mysql_fetch_array($result)) 
       { 
       echo "<option value=".array('materialnummer'=>$row['materialnummer'], 'materialbezeichnung'=>$row['materialbezeichnung']).">" . $row['materialnummer'] . " | ".utf8_encode($row['materialbezeichnung'])."</option>"; 
       } 
      echo "</select> 
      ";
Die Variable $material soll nachher wie folgt aussehen:
PHP:
$material[] = array('materialnummer' => 0815,  
                  'materialbezeichnung'   => "Testmaterial);
Leider funktioniert das ganze nicht wirklich. Habe ich hier einen Denkfehler?
 
Das steht dann auch in deinem value-Attribut ;)

Du solltest dir also besser was anderes ausdenken.
 
Irgendwie mischst du da echo und Array-zuweisung zu einem unlesbaren und nicht funktioniernenden Kneuel.

PHP:
//nur die Felder auswählen die du auch brauchst
$sql= <<<SQL
SELECT 
	materialnummer,
	materialbezeichnung 
FROM 
	material 
WHERE 
	materialgruppe = %d
SQL;

$result = mysql_query(sprintf($sql, mysql_escape_string($q)); 
//Array initialisieren
$selectList = array();
while($row = mysql_fetch_array($result)){
	$selectItem['materialnummer'] = $row['materialnummer'];
	$selectItem['materialbezeichnung'] = utf8_encode($row['materialbezeichnung']);
	$selectList[] = $selectItem;
}

echo "<select name='material[]' >\n";
foreach($selectList as $selectItem){
	echo "<option value='{$selectItem['materialnummer']}'>{$selectItem['materialbezeichnung']}</option>\n"
}
echo "</select>\n";
 

Neue Beiträge

Zurück