Jeśli skrypt nie wywala błędu przy uruchomieniu, to jest poprawny składniowo. Większym problemem IMO w tym wypadku jest nietrzymanie się dobrych praktyk.
Pierwsze pięć linijek to logika, kolejne próbują coś wyświetlić. A to oznacza, że warstwa logiki jest wymieszana z warstwą prezentacji. Powinno być to przynajmniej rozdzielone na różne pliki albo, jeszcze lepiej, powinien być tu zastosowany jakiś system szablonów (obecnie popularny jest Twig).