Ваш первый пример на самом деле будет делать то, что вы хотите, но будет очень дорого. Второй - выбор всей таблицы, переход к 30-й строке результата, а затем циклический просмотр всех результатов с этого момента.
Вместо этого вы должны сделать следующее, которое вернет только одну строку и будет намного быстрее:
$result = mysql_query('SELECT views FROM post ORDER BY views ASC LIMIT 30,1');
Обратите внимание, что объяснение LIMIT Совиута не совсем корректно - оно (смещение, количество строк), а не (min, max).