Есть таблица с баннерама:
id/name/link/city/region
где
id - id баннера
name - название
link - ссылка
city - геотаргетинг по городу
region - геотаргетинг по региону
примечение: если city или region пусты, то значит что баннер не прикреплен к геоданным и показывается всегда
Нужно вывести последовательно по одному баннеру учитывая геолокацию пользователя.
будем считать что:
$user_city = Город пользователя
$user_region = Регион пользователя
select * from banners where city = '' and region = ''
union
select * from smc_banners where city = '$user_city' or region = '$user_region'
//код получает все баннеры, которые прикреплены к гео данным пользователя и баннеры, без геопривязки, нужно теперь как-то вывести последовательно по одному баннеру
более хороший код
select *
from banners
((city = '$user_city' or city = '') and (region = '$user_region' or region = ''))
//Получает все баннеры, у которых нет привязки к гео и все баннеры, которые привязаны к гео текущего пользователя