Denne forespørgsel sletter alle kategorier fra dit indlæg, fordi du fortæller det til dig hvor-klausulen. Du siger i bund og grund, fjern hver post fra tabellen posts_categories, der har et post-id =$post_id. Du skal tilføje din where-klausul for at gøre den mere specifik.
$delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "' AND categoryID = '". $query_cat_id[$x] ."'");
Dette siger nu det samme, som du gjorde, men tilføjer en ekstra kvalifikation. Slet kun rækker fra tabellen, hvor post_id er $post_id og id'et for kategorien er (værdien af dit afkrydsningsfelt).
Ansvarsfraskrivelse:Jeg gætter på, hvor du gemmer dine kategori-id'er i din funktion ($query_cat_id[$x]).