Pateketrueke ya te explicó el error, ahora te explico que para hacer que funcione, necesitas, dentro de tu función, iterar cada resultado y agregarlos a un array, el cual devolverás con un return para posteriormente hacer el manejo como tú lo haces ahora.
Hace un tiempo hice una función muy sencilla que lo que hace es pasar cada iteración a un objeto, de forma que en lugar de usar por ejemplo
$var['campo'], se usa
$var->campo. En fin, hay muchas posibilidades, pero aquí debes usar tus habilidades
Saludos