redactor='".$my['id']."'
Какой redactor? Откуда redactor? БД и таблица пользователей ничего не знает о данной "колонке".
Что за, м-м-м, интересные вещи творятся во втором и 3м запросах? У вас итоговый запрос выглядит как
SELECT (SELECT() + SELECT() + SELECT() ...)
Зачем это всё?
Я конечно понимаю, что это от незнания, но...
В общем, с mysql_query я давно не работал, поэтому обойдусь просто направлением:
1) Строки с 5 и до конца удаляем;
2) While или чем угодно получаем все id из первого запроса;
3) Читаем мануал по
https://dev.mysql.com/doc/refman/8.0/en/comparison... ;
4) составляем запрос с использованием IN и всех id новостей;
5) Выдёргиваем все данные одним запросом без, как вы выразились, костылей;
p.s.
ну или используем JOIN как вам посоветовали выше.