Tento dotaz maže všechny kategorie z vašeho příspěvku, protože to říkáte s vámi, kde je klauzule. V podstatě říkáte, odstraňte z tabulky každý záznam posts_categories, který má id příspěvku =$post_id. Musíte přidat do své klauzule where, aby byla konkrétnější.
$delete_id = mysqli_query($mysqli,"DELETE FROM posts_categories WHERE post_id = '" . $post_id . "' AND categoryID = '". $query_cat_id[$x] ."'");
To nyní říká totéž, co jste udělali, ale přidává další kvalifikaci. Odstraňte z tabulky pouze řádky, kde je post_id $post_id a ID kategorie je (hodnota vašeho nezaškrtnutého políčka).
Odmítnutí odpovědnosti:Hádám, kde ve své funkci ukládáte ID kategorií ($query_cat_id[$x]).