В любом языке программирования есть возможность создания переменных определённого типа, а также создание различного рода функций.
Эти переменные хранятся в оперативной памяти компьютера и над ними можно производить любого рода операции. Их можно умножать, делить, возводить в степень и т.п. Такие переменные можно также заключать в массивы.
За подобную динамику на веб-сайтах отвечает JavaScript и PHP.
В HTML нельзя создавать переменные. HTML не умеет общаться с базами данных. Он не может генерировать запросы в базы. Он не умеет на лету менять содержимое. Он просто говорит о содержимом.
Представьте, что Вы купили мебель в IKEA. Вы привезли все коробки домой и распаковали их. Внутри коробок лежат все необходимые комплектующие для стола, шкафа, тумбы. Вроде всё есть, но оно пока не работает как надо. Нужно всё собрать!
В коробках Вы обнаружите инструкцию по сборке. Только когда Вы выполните все шаги последовательно и соберёте мебель, тогда Вы сможете ей воспользоваться.
HTML является инструкцией для Вашего браузера. HTML говорит в какой последовательности нужно собирать страницу сайта и какие элементы страницы сайта нужно отобразить. На этом его функции заканчиваются.
Генерацией HTML занимается PHP и многие другие языки программирования.