No, non contiene solo un record, è che tu stampi solo il primo.
Devi ciclare su $res con un while, fetch_assoc() restituisce un record e si posiziona sul seguente, non te li da tutti in un colpo solo.
Leggi la documentazione ufficiale per avere degli esempi.