Tu vas devoir faire une pagination de taille 1, tout simplement.
Ici, le problème vient du fait que la requête va différer avec le type de BDD que tu utilises.
Exemple en MySQL :
SELECT * FROM enseignants
LIMIT 1 OFFSET 27;
Cette requête te permet de récupérer le 28 enseignant, si tu veux le 3ème, tu remplaces la valeur de l'OFFSET par 3 - 1, donc 2.
Cependant, si tu veux la liste de tes enseignants avec le numéro de ligne, c'est légèrement différents, tu vas devoir utiliser la fonction ROW_NUMBER()
:
SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS row_num
FROM enseignants;
PS : Cet exemple va mettre le numéro de ligne en fonction de l'ID, ça reste à adapter selon tes choix