Беглый взгляд показывает, что вам нужно посмотреть синтаксис запроса SELECT и сравнить его с тем, что вы формируете.
Кроме того, конкатенировать цикл к строке? Там ошибка скорее всего вроде unexpected T_FOREACH должна выходить по идее, хотя могу ошибаться.
Я в js не силен, от слова "совсем", не пинайте, если что.
Есть два обещания. Одно вызывается из другого, осуществляет запрос в базу данных, отдает идентификаторы нужных записей.
Проблема в том, что основное обещание выполняется не ожидая завершения вызванного. Как сделать что бы выполнение основного было завязано на выполнение второго.
как получить все записи за текущую неделю или за следующую?
Получай дату начала и конца недели в timestump (через php, например) и 'where date_row between date1 and date2'.
Что касается выявления годов записей, то здесь два варианта, как мне видится.
1. если записи по датам непрерывны, то брать самую старую и саму новую записи, вычислять их года, остальное считать по умолчанию.
2. если могут быть года выборочно, то, например, организовать цикл с датами начала и конца годов, начиная с самой старой записи. есть запись в базе, запоминать год и опрашивать следующий.
Для одинаковости смотри такую функцию htmlspecialchars_decode.
Что касается "почему", то потому что получаешь из разных источников, а что там накручено и с какими настройками нужно смотреть отдельно.
Если я правильно помню, собственно <code> не экранирует от исполнения.
Поэтому, если вам нужно код отобразить, то можно просто заменить спецсимволы на HTML-сущности. Например, htmlspecialchars можно использовать или htmlentities. Выглядеть будет как код, а исполняться не будет.
Получившееся уже можно запихнуть в <code>.
Ты ищешь нужные элементы, проверяешь наличие следующих страниц.
Если элемент найден, то и атрибут этот есть. Ты же тег <a>, ищешь. В крайнем случае, проверь наличие HREF в outertext, делов то.