Ще го обясня по-подробно.
Имаш таблица с отговорите по дадена тема. Лесно можеш да преброиш, има да кажем 200 отговора. Знаеш че един от тях има id = 332456 и трябва да откриеш на коя страница се намира. На всяка страница показваш по 20 резултата.
PHP:
for($i = $start; ; $i += $by_page ){
Създаваме цикъл, който обхожда всяка възможна "страница" с резултати. Максималния брой пъти, който този цикъл ще се изпълни е равен на броя на страниците с резултати:
run #1: (0 - 20)
run #2: (20 - 40)
run #3: (40 - 60)
Във всяка една от тези страници (групи от отговори) търсим отговор с id = 332456 - изпълняваме една-единствена заявка, с цел да открием дали избрания отговор е на тази страница. Ако резултата от тази заявка съдържа един ред, това означава че сме на точната страница, излизаме от цикъла и вече разполагаме с нужната ни информация. Ако ли не, увеличаваме стойността на $start и $page_id и продължаваме със следващия сет от резултати.
Още по-разбираемо ще стане, ако вместо $start и $by_page, вземеш че преброиш резултатите и определиш колко общо страници с резултати имаш.
Не съм го тествал, не гарантирам че работи, но идеята е да откриеш на коя страница от резултатите се намира избраното мнение. За целта обикаляш през страниците, по същия начин както все едно ще показваш резултатите пред потребителя, но вместо това правиш обратното действие - имаш id на мнението, и търсиш дали то се съдържа в масива от мнения за конкретната страница. Изпълнява се максимум една заявка за всяка страница.