Вход • Регистрация

SQL запрос

  • 25 ноября 2011 г. , редакция: 25 ноября 2011 г.
  • Есть 2 параметра минимум и максимум соответственно в таблице param.element имеются 2 записи.
    Нужно выбрать список элементов (element.id) значение введённого патаметра должен находится между max и min.
    Соль как обеденить в одном запросе выборку таких елементов очень нехочется совмещать результаты 2 запросов?
    Ниже написан бред для наглядности поскольку 2 первых условия для одной записи а последние 2 для другой.
    WHERE param_id=1 AND value>[значение фильтра] AND param_id=2 AND value<[значение фильтра]

    Собрал вот такую штуку но что-то как-то уж очень громоздко, есть решения поэлегантнее?
    SELECT p1.`element_id` FROM `diafan_credits_param_element` p1 INNER JOIN `diafan_credits_param_element` p2 ON p1.`element_id`=p2.`element_id` WHERE p2.`param_id`=2 AND p2.`value`<400000 AND p1.`param_id`=1 AND p1.`value`>400000;
  • 16 декабря 2011 г.
  • Есть метод DB::query_result($query) который судя по документации должен возвращать ассоциативный массив и должен идеально подходить для получения единственной записи.
    Делаю следующее:
    $сashpoint = DB::query_result("SELECT * FROM {cashpoints} WHERE id=%d AND act='1' AND trash='0'", $this->diafan->show);
    В результате ожидается получить следующее, $сashpoint должен содержать массив типа:
    array('id'=>3, 'name'=>"банкомат №123", ''=>"ул. Пушкина д. Колотушкина", 'act'="1", 'trash'=>"0");
    Но получается следующее:
    (int) $сashpoint = 3
    И в данном случае он оказывается непригодным.
    Для каких целей используется этот метод?
    пришлось заюзать 2 метода:
    $сashpoint = DB::fetch_array(DB::query("SELECT * FROM {cashpoints} WHERE id=%d AND act='1' AND trash='0'", $this->diafan->show));

    В общем было бы клёво, увидеть идейность создания методов и соответственно примеры, как правильно их применять на практике в документации.
    • 20 декабря 2011 г.
    • Этот метод остался артефактом с прошлых версий.
      Нужен он быстрого получения одного поля
      Код
      $name=DB::query_result("SELECT [name] FROM {news} WHERE id='%d' LIMIT 1",$id);

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум