Je to proto, že váš dotaz je//select * z období WHERE id <$id ORDER BY id DESC LIMIT 1; vaše první $id bude vždy stejné id.