Lo faresti pure con il while.... e piu' semplicemente. Prova lo script e poi se ti pare lo racchiudi in una funzione. Quello di prima era una cosa inesistente.

In questo quel require_once dentro alla funzione suona di cosa molto buffa. Io direi di tenere i dati di connessione separati dalla funzione. Tieni anche presente la visibilita' di questi dati dall'esterno verso l'interno della funzione e viceversa.