Hallo BugBuster!
Vielen Dank für deine schnelle Antwort! Ja, ich setze Contao 3 ein und ja, es funktioniert damit wunderbar!
Ich erhalte jetzt aber einen grösseren Array:
Code:
Contao\Database\Mysql\Result Object
(
[resResult:protected] => Resource id #186
[strQuery:protected] => SELECT * FROM tl_canton
[intIndex:Contao\Database\Result:private] => 0
[blnDone:Contao\Database\Result:private] =>
[blnModified:Contao\Database\Result:private] =>
[arrCache:protected] => Array
(
[id] => 1
[canton] => AG
)
)
Ich musste also meine Abfrage noch erweitern:
PHP-Code:
function getSelectMenu($sql){
$result = Database::getInstance()->prepare($sql)->execute();
$output = '<select><option>Bitte wählen</option>';
$i=0;
while($result->next())
{
$arrValues[] = $result->row();
$output .= '<option value="'.$arrValues[$i]['id'].'">'.$arrValues[$i]['canton'].'</option>';
++$i;
}
$output .= '</select>';
return($output);
}
Etwas unschön an der Sache ist noch, dass row() einen associativen Array zurück gibt. Besser wäre es, wenn ich die Werte mit Nummern ansprechen könnte. Sonst müsste ich meiner Funktion immer noch die Feld-Namen mitgeben...
Ich habe auch scho bei der Contao API für Database Result nachgeschaut. Es scheint da aber nur die Funktion row() zu geben. Wenn ich fetchRow() einsetze, gibt er mir nicht alle Werte aus...
Gruss
Marco