Делаю рассылку из базы, получаю 50 000 id и через
foreach ($massiv as $odin) { }
делаю рассылку по базе.
Хочу прикрепить прогресс бар к этому. Как это сделать?
Рассылка у Вас на сервере, прогрессбар на клиенте. Соответственно Вам нужно передавать прогресс на клиента. Сделать это можно двумя способами:
Второй способ более правильный и безопасный
Если хотите все красиво, тогда тут потребуется AJAX.
Суть вот в чем:
Вы должны 50000 ид разделить допустим на 100 (получается 500) и с помощью AJAX делать запросы к скрипту и выполнять по 500 штук за одно подключение. В итоге, когда скрипт отработает он вернет на обработчик AJAX'a информацию о проделанной работе. В случае если все прошло успешно, мы выводим информацию. Вывести можно как alert(), console.log(), document.write()....
А можно еще в виде диаграммы используя тег progress или самим создать две дивки
Сборка персонального компьютера от Artline: умный выбор для современных пользователей