Seite 4 von 4

Re: Module schreiben

Verfasst: Mi 17. Mai 2017, 14:49
von Florian
Genau, die Methode "SelectArr" liefert die Datenbankfelder nicht direkt assoziativ, sondern verschachtelt und auf unterster Ebene indiziert, weil ggf. auch mehrere Datensätze geliefert werden können. Die Array-Funktion "current()" liefert dann das erste assoziative Array von den indizierten.

Habe mir gerade noch einmal die Methoden der DB-Klasse angeschaut,

Code: Alles auswählen

    $input = $this->app->DB->GetArray("SELECT datum, beschreibung FROM beispielmodul WHERE id = '$id'");
sollte statt

Code: Alles auswählen

    $input = $this->app->DB->SelectArr("SELECT datum, beschreibung FROM beispielmodul WHERE id = '$id'");
    $input = current($input);
auch funktionieren - und wieder eine Zeile Code weniger :-)

Viel Erfolg und beste Grüße,
Florian

Re: Module schreiben

Verfasst: Mi 17. Mai 2017, 16:49
von sauterbe
oder bei dem anderen mit $input[0] auf die erste Zeile zugreifen

Re: Module schreiben

Verfasst: Do 18. Mai 2017, 07:49
von Florian
Keine Ahnung was ich da gestern in der GetArray-Methode gelesen habe, aber die baut das Ergebnis genauso auf wie die SelectArr-Methode. Letztere liefert in jedem Fall ein Array zurück, auch wenn die Datenbankfrage keine Ergebnisse liefert und ist definitiv zu bevorzugen. Ein "$input = current($input);" oder eben "$input = $input[0];" bleibt im Anschluss jedenfalls unerlässlich, alternativ könnte die DB-Klasse noch um eine entsprechende Methode erweitert werden.