Od dłuższego czasu piszę panel admin. pod jedną ze stronek i chciałbym zrobić to jak najlepiej

Mam stronę X.php, w niej pokazuję co jest już ew. w bazie i na żądanie daje linki do 'przełącznika' formularzy dodawania/edycji/usuwania danej rzeczy. Poniżej akurat form usunięcia opisu. I tu sprawdzam już czy użytkownik nie manipuluje linkiem, czy wprowadzone dane są poprawne itd. i przesyłam do strony transakcji transact.php gdzie w sumie sprawdzam często ponownie to samo i tu własnie moje pytanie - jest sens w sumie sprawdzać 2x te same rzeczy? issety, empty, is_numeric? Czy w zasadzie sprawdzać to wszystko dopiero w transact.php?
x.php
(...) elseif (!empty($_GET['description']) || isset($_GET['description']) && array_key_exists('description', $_GET)) { $id = $_GET['id']; switch ($_GET['description']) { (...) case 'd': AddReport('error', '<b>Błąd</b> - Opis nie istnieje'); break; } $d_query = "SELECT * FROM about WHERE id = $id"; $d_result = mysqli_query($connect, $d_query); if(!$d_result) { AddReport('error', '<b>Błąd</b> - Bład podczas połączenia z bazą danych, spróbój ponownie później'); break; } if (1 == mysqli_affected_rows($connect)) { $description_d = <<< DeleteDescription <legend>Czy napewno chcesz usunąć opis?</legend>\n <input type="hidden" name="id" value="$id" />\n <input type="hidden" name="action" value="description_d" />\n <input type="submit" value="Usuń" />\n <input type="button" value="Powrót" onClick="history.go(-1)" />\n DeleteDescription; } else { AddReport('error', '<b>Błąd</b> - Opis nie istnieje'); } break; (...)
transact.php
foreach ($_POST as $key => $value) { $$key = $value; } $directory = $_GET['p']; switch ($_GET['p']) { // --------------- // ====== ABOUT ========================================================================= // // --------------- case 'about': $redirect = '../admin.php?p=about'; switch ($_POST['action']) { (...) case 'description_d': $query = "SELECT id FROM about WHERE id = $id"; $result = mysqli_query($connect, $query); AddReport('error', '<b>Błąd</b> - Opis nie istnieje'); } mysqli_free_result($result); $query = "DELETE FROM about WHERE id = $id LIMIT 1"; $result = mysqli_query($connect, $query); if (!$result) AddReport('error', '<b>Błąd</b> - Bład podczas połączenia z bazą danych, spróbój ponownie później'); } AddReport('successs', "<b>Opis usunięty pomyślnie</b>"); else $redirect .= "&link=d&id=$id"; break; (...)