Какая именно? Город не у той страны? Используйте только код города. Код страны, области - это вообще можно игнорировать, так как по этим таблицам все легко вычисляется.
То есть страны, области, города - для удобства выбора пользователя. Хранить в БД только код города.
Вот оттяпает какая-то страна у другой часть территории, и у вас неконсистентные данные будут. А с хранением только города - можно страну пересчитывать каждый раз.
Ну это понятно. Вопрос то не в этом был. Пользователь заполнил форму и отправил. На сервера при валидации нашлась ошибка заполнения, например, не указал название. Пользователю возвращается форма с веденными ранее данными (чтобы заново не заполнять). Дак вот ему нужно вывести выбранный им город, при этом и списки всех его родителей:
И в каждом списке выводятся только нужные. Т.е. если это москва, то в областях выводятся только области России. В списке городов только города из области. Чтобы не было других городов. Как собрать такие списки?
У меня было два способа решения:
1. весь массив городов сохраняется в один большой массив в кэш-файл, затем сохраняется массив в переменную (это когда 1-2 десятка городов из одной страны).
2. все хранится в одной таблице, Как категории (описано все выше) и делается выборка из поля города (arrparentid) всех его родителей. Так формируется большой массив всех стран, областей выбранной страны и городов из выбранной области.
И в том и другом случае, дальше php строит списки.
Как это все можно сделать, если локации разбиты на три таблицы, вот этого я и не могу понять?