En uppenbar grej är att du aldrig exekverar SQL-frågan $sql. Jag kan också tycka det känns lite konstigt att göra en loop trots att du vet att du bara har en post. Men det lämnar vi nu.
Följande SQL-fråga borde uppdatera posten om datum i levelEnd är tidigare än, eller idag. Vill du ha bara tidigare än så är det bara att ta bort =.
UPDATE users SET usrLevel = '0' WHERE userID = '25' AND levelEnd <= CURRENT_DATE()
Med denna SQL-fråga behöver du alltså inte göra en SELECT först - så du kan kapa en del av din kod.
I övrigt ger "får inte nedanstående att fungera" oss ganska dålig ledning i vad som är fel. På vilket sätt fungerar det inte? Felmeddelande?