Use este código:
$rows = array();
if ($type == 'assoc') {
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
} else {
while($row = $result->fetch_object()) {
$rows[] = $row;
}
}
return $rows;
Você está usando o return dentro do while e return termina o loop while após a primeira iteração, é por isso que você está obtendo apenas uma linha.