ФорумРазработкаБазы данных → Затупил с запросом...

Затупил с запросом...

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 10:57

    есть `sections`:
    id	name
    10 Тарифы
    11 Услуги


    есть `sections_pages`:
    id    section_id    name
    6 10 Тариф 512
    7 10 Тариф 1024
    8 10 Тариф 2048
    9 10 Тариф 7000
    10 10 Правила тарификации
    11 11 Услуга 1
    12 11 Услуга 2
    13 11 Услуга 3
    14 11 Услуга 4


    делаю так:
    SELECT s.id AS s_id, s.name AS s_name, sp.id AS ARRAY_KEY, sp.name
    FROM sections_pages AS sp
    LEFT JOIN sections AS s ON s.id = sp.section_id


    получаю это:
    array(9) {
     [0] => array(4) {
       ["s_id"] =>  "10"
       ["s_name"] =>  "Тарифы"
       ["id"] =>  "6"
       ["name"] =>  "Тариф 512"
     }
     [1] => array(4) {
       ["s_id"] =>  "10"
       ["s_name"] =>  "Тарифы"
       ["id"] =>  "7"
       ["name"] =>  "Тариф 1024"
     }
     [2] => array(4) {
       ["s_id"] =>  "10"
       ["s_name"] =>  "Тарифы"
       ["id"] =>  "8"
       ["name"] =>  "Тариф 2048"
     }

     …

     [8] => array(4) {
       ["s_id"] =>  "11"
       ["s_name"] =>  "Услуги"
       ["id"] =>  "14"
       ["name"] =>  "Услуга 4"
     }
    }


    как из этого говна сделать что-нить типа такого:
    [
     {
       id : 10,
       name : Тарифы,
       pages : [ { id : 6, name : Тариф 512 }, { id : 7, name : Тариф 1024 } … ]
     },
     {
       id : 11,
       name : Услуги,
       pages : [ { id : 11, name : Услугa 1 }, { id : 12, name : Услугa 2 } … ]
     }
    ]

    ?
    или это только в пехепе делать?))
    и правильно я вааще делаю?))
    Высокоуровневое абстрактное говно
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 11 марта 2012 г. 11:11, спустя 13 минут 33 секунды

    Ты это хочешь в SQL сделать? В php есть json_encode
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 11:16, спустя 5 минут 15 секунд

    В php есть json_encode

    не, не json, я как пример структуры показал…
    в общем пох, сделал через жопу и работает))
    Высокоуровневое абстрактное говно
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 15:04, спустя 3 часа 48 минут 37 секунд

    Stasovsky, нормально сделал, только у тебя джсон может структурироваться так, как не может результат скл. Ну что поделаешь, отсортируй по section_id в запросе, а в коде создай нужную структуру и пиздуй её в json encode. Если данные не часто меняются можно прямо в sections хранить тестовое поле с json списком тарифов ))) ну это уже не твой вопрос ))
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 15:35, спустя 30 минут 11 секунд

    да блин))
    не, не json, я как пример структуры показал…

    мне в падлу было писать эту херь
    array(
    array(
    id => 1,
    name => Тарифы,
    pages => array(
    array(
    id => 6,
    name => Тариф 512
    ),
    array(
    id => 7,
    name => Тариф 1024
    )

    )
    )
    )

    написал как умел - жсоном, да и читабельнее он))
    в общем, пардон, что ввел в заблуждение, нахерачил форичей и прочего мусора, работает и да хрен с ней))
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 15:35, спустя 36 секунд

    на похапе программируешь, гляжу
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 15:38, спустя 2 минуты 19 секунд

    на похапе программируешь, гляжу

    а ты уже со змеей играешься?
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 15:39, спустя 1 минуту 4 секунды

    а ты уже со змеей играешься?

    та не пока, еще надо старые игрушки доломать…
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 15:45, спустя 6 минут 22 секунды

    XD
    дуд не давит на тебя?))
    Высокоуровневое абстрактное говно
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 15:57, спустя 12 минут 26 секунд


    SELECT s.id, s.name, GROUP_CONCAT(CONCAT("{ id: ", sp.id, ", name: ", sp.name, " }"))
    FROM sections_pages AS sp
    LEFT JOIN sections AS s ON s.id=sp.section_id
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 15:59, спустя 1 минуту 9 секунд

    GROUP_CONCAT(CONCAT("{ id: ", sp.id, ", name: ", sp.name, " }"))

    ДА ЛАДНО? :D

    а как же экранирование?)
    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 11 марта 2012 г. 16:03, спустя 4 минуты 18 секунд

    да вашу ж машу))
    мне НЕ нужен жсон))
    Спустя 29 сек.
    я уже все сделал как хотел
    Высокоуровневое абстрактное говно
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 16:11, спустя 8 минут 30 секунд


    GROUP_CONCAT(CONCAT("{ id: ", sp.id, ", name: ", sp.name, " }"))

    ДА ЛАДНО? :D

    а как же экранирование?)
    это мелочи, пусть сам доделывает -)
    Спустя 52 сек.

    да вашу ж машу))
    мне НЕ нужен жсон))
    Спустя 29 сек.
    я уже все сделал как хотел
    ну ты исправь тогда "результат" на правильный
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 16:15, спустя 3 минуты 29 секунд

    вашу ж машу

    МЕЖДУ ЛЯШЕК
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 марта 2012 г. 16:17, спустя 1 минуту 44 секунды

    ОЛОЛО ОЛО ЛОЛ ОЛОЛ СТАСОВСКИЙ НУБАЛО :D
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!