Вы передаете $comid
своей функции. В цикле while вы сначала устанавливаете $info
, а затем сравниваете его с $comid
. Если два значения совпадают, вы выходите из функции. Если они не совпадают, вы отправляете электронное письмо.
Как только письмо отправлено, цикл продолжается и обрабатывает следующий тег. Когда вы в следующий раз сравните $info
и $comid
, я думаю, что они будут другими, поскольку вы перешли к следующему тегу. Поэтому будет отправлено другое письмо.
Я не знаю, является ли это предполагаемым поведением - вы намереваетесь отправить одно электронное письмо для каждого обновления в таблице или только одно электронное письмо, если были какие-либо обновления в таблице? Если вам просто нужно отправить одно электронное письмо, независимо от того, сколько обновлений было, тогда просто выйдите из цикла после того, как первое электронное письмо было отправлено - как предложено manu_v.
Я бы также посмотрел на рефакторинг вашего кода, чтобы он был более надежным - все вызовы get_tag
кажутся немного неубедительными. Ознакомьтесь с другими ответами на предложения о том, как это сделать.