El código en sí deberia estar bien, pero como dices, ese no es el código completo. Quiero, pero para ayudar no hay suficiente información.
Unos consejos para tu código:
-Si esto es una página web y no un script, separa el controlador de la vista, haz un archivo con las funciones y otro que sea principalmente html con el php indispensable.
-Enves de usar {} cuando mezclas html con "if" de php, intenta usar este procedimiento para un código mas limpio
Cita: <?php if (condition): ?>
Codigo html si la condicion es verdadera
<?php else: ?>
Codigo html si la condicion es falsa
<?php endif ?>
Todo esto no lo digo por quejica, sino porque entre menos desordenado tienes el código, antes encontrarás el error por ti mismo y te será mas facil en un futuro expandir tu código.
si puedes darnos algo mas de información igualmente, estamos aquí.