GeSHi (PHP):
<?php
}
?>
почнат while и свършен наникъде и т.н.
Няма нищо лошо в това оформление - често срещано при изписване на View-то в MVC модела, когато не се използва някакъв template engine, който да направи кода още по-странно изглеждащ

Това изписване на HTML-а извън PHP таговете позволява кеширане на същия този HTML. Важното е бройката и местата на отварящите и затварящите скоби във вложените PHP тагове да си отговарят.
buserg, ако не използваш други езици, изискващи подобни тагове, каквито изисква PHP (като XML; може да внесе объркване), можеш в php.ini да зададеш
short_open_tag = On
и тогава това
<?php echo $rows['id']; ?>
да го изписваш така
<?= $rows['id'] ?>
Относно проблема ти, че записите не се трият
// Започване на триенето
if($delete){
Не намирам някъде да задаваш променливата $delete, поради което тази променлива винаги е без стойност, и така никога не се влиза в if-а, в който се извършва триенето. Виждам бутон, името на който е "delete", и той се намира в POST форма. След изпращане на формата неговата стойност не застава в променлива $delete, а в $_POST['delete'], така че това е променливата, която трябва да използваш в проверката. $_POST е масивът, в който се съхраняват стойностите на изпратената POST форма
// Започване на триенето
if (@$_POST['delete']) {
Сложил съм ти @ пред променливата, за да не ти влизат Notice съобщения в лога, че променливата не е зададена, когато все още не си цъкнал бутона "Изтрий". Гледай да слагаш по някой и друг интервал, за да си четеш по-лесно кода.
Същото е положението с масива $checkbox, който използваш малко по-надолу в същия if (пак е част от $_POST). На теб оставям да познаеш той как трябва да изглежда