es geht nicht um variationen, sonder nur darum, das foreach ein array der länge 0 nicht iterieren kann.
wahrscheinlich liefert dein resultset nichts. daher wird das array nicht gefüllt.
setze doch zu testzwecken einfach mal direkt etwas in das array hinein, ohne datenbank. dann wird das foreach laufen.