Tiruvileijadal'
Ну и выдумала имя себе
Итак, вы делаете распространенную ошибку, предполагая, что while select - это обычный себе цикл, в котором вы что-то можете менять.
Это не так!
while select - это ОДИН запрос, который возвращает набор записей. Но запрос выполняется лишь единажды (отсылается на сервер). Видимо в первый раз значение вашей переменной == 2. Но потом, пытаясь изменять ее в цикле, вы не получите "ожидаемого" результата. Потому как запрос уже исполнился.
Я правильно выразил вашу ошибку?