Показать сообщение отдельно
  #17 (permalink)  
Старый 09.01.2016, 14:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

И каким образом это можно сделать, если Район и Пригород это тоже самое что и (район 1 или пригород 1...)? Конечно можно и повыпендриваться условием и подогнать под нужное, но во-первых, и не впервой повторяется, что нужно не блокировать, а выделить группы. А во-вторых нужно иметь порядок в базе, а не колотить костыли в код.

Сообщение от Alex921
Район и Пригород это тоже самое что и (район 1 или пригород 1...)
И
Пригород имеет id_value в таблице cat_board_listv
И
Район имеет id_value в таблице cat_board_listv
Может все таки не строкой в базе се описано, коли есть идентификаторы и "одно и тоже", а просто вы не можете пояснить толково что имеется в базе?

Данные в базе должны быть структурированы, и коли речь о странах, городах и их районах, то - есть таблица стран, есть таблица городов и есть таблица районов. Таблицы связаны по первичному ключу. Таблица районов (в примере table_district) содержит поле собственного идентификатора, идентификатор города, которому принадлежит район. Связь города со страной осуществляется по таблице городов. Принадлежность к пригороду или району нужно определять не идентификатором записи, а полем типа SET с двумя значениями.

Дамп таблицы:

Код:
-- Структура таблицы `table_district`

CREATE TABLE IF NOT EXISTS `table_district` (
  `id_district` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Иентификатор района',
  `id_city` int(11) NOT NULL COMMENT 'Идентификатор города',
  `name` varchar(150) NOT NULL COMMENT 'Наименование района'',
  `district` set('Пригород','Район') NOT NULL COMMENT 'Район/Пригород',
  PRIMARY KEY (`id_district`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;

-- Дамп данных таблицы `table_district`

INSERT INTO `tmp` (`id_district`, `id_city`, `name`, `district`) VALUES
(8, 2, 'Имя 1', 'Пригород'),
(9, 1, 'Имя2', 'Район'),
(10, 2, 'Имя 3', 'Район'),
(11, 2, 'Имя 4', 'Район'),
(12, 2, 'Имя 5', 'Пригород'),
(13, 2, 'Имя 6', 'Пригород');
Пусть запрашиваются районы/пригороды города с ID=2:

$q = mysql_query('SELECT id_district, name, district FROM table_district WHERE id_city=2 ORDER BY district');
while($r = mysql_fetch_assoc($q)) $json[] = $r;

exit(json_encode($json, JSON_UNESCAPED_UNICODE));


Клиент получит JSON:

Код:
[
    {"id_district":"8","name":"Имя 1","district":"Пригород"},
    {"id_district":"12","name":"Имя 5","district":"Пригород"},
    {"id_district":"13","name":"Имя 6","district":"Пригород"},
    {"id_district":"10","name":"Имя 3","district":"Район"},
    {"id_district":"11","name":"Имя 4","district":"Район"}
]
Как построить список показывалось.

Последний раз редактировалось laimas, 09.01.2016 в 14:23.
Ответить с цитированием