ФорумПрограммированиеPHP для идиотов → Опять зеднохрень или я туплю!!?

Опять зеднохрень или я туплю!!?

  • NRG

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

    Spritz Июнь 11, 2010, 6:40 п.п., спустя 2 минуты 9 секунд


    кароче - Zend.Db* - гавнище. То ли дело доктрина какая-нить
    Абырвалг, не ровняй хуй с пальцем
  • kostyl

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

    Spritz Июнь 11, 2010, 6:44 п.п., спустя 4 минуты 15 секунд

    NRG, оо, привет. Расскажи верно ж я говорю. Или там надо что то делать?
  • phpdude

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

    Spritz Июнь 11, 2010, 6:46 п.п., спустя 1 минуту 35 секунд

    kostyl, молодец, ты использовал иф. только нахуй такую полемику разводить ))
    Сапожник без сапог
  • kostyl

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

    Spritz Июнь 11, 2010, 6:57 п.п., спустя 11 минут 33 секунды

    phpdude, та какая полемика, я просто спросил, ты потом ответил, на ооп всё замяли и я успокоился, но…
  • NRG

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

    Spritz Июнь 11, 2010, 7:40 п.п., спустя 42 минуты 43 секунды

    kostyl, у нас решение такое, унас есть свой обьект селекта который отнаследован от Zend_Db_Select.
    и в котором метод where() переопределен
    <?php
    public function where($cond, $value = null, $type = null)
    {
    if (is_null($value) && is_null($type)) {
    $value = '';
    }
    if (is_array($value)) {
    $cond = $this->_adapter->quoteInto($cond, $value);
    $value = null;
    }
    return parent::where($cond, $value, $type);
    }
  • kostyl

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

    Spritz Июнь 11, 2010, 7:57 п.п., спустя 17 минут 9 секунд

    NRG, ну я типа того и думал, где то вставить ''. Спасибо.
  • phpdude

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

    Spritz Июнь 11, 2010, 8:11 п.п., спустя 13 минут 54 секунды


    NRG, ну я типа того и думал, где то вставить ''. Спасибо.
    я тебе во втором моем посте сказал унаследуй и перепиши вере метод :D
    Сапожник без сапог
  • kostyl

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

    Spritz Июнь 11, 2010, 8:24 п.п., спустя 12 минут 50 секунд

    я тебе во втором моем посте сказал унаследуй и перепиши вере метод

    так я знаю ;) помню, я понял и тогда.
    аа, ты наверно за моё спасибо к НРГ?
    Так это спасибо за то, что он откликнулся, а не за то, что он предложил.
  • phpdude

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

    Spritz Июнь 11, 2010, 10:57 п.п., спустя 2 часа 33 минуты 33 секунды

    kostyl, нет, не за спасибо. это был обычный стеб, расслабься
    Сапожник без сапог
  • artoodetoo

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

    Spritz Июнь 12, 2010, 4:48 д.п., спустя 5 часов 50 минут 7 секунд

    kostyl, извини, что я начал всё разжевывать как первокласнику. просто перед этим боролся с тупостью по работе, вот под настроение попал.

    А с NULL все-таки все непросто :)
    ιιlllιlllι унц-унц
  • artoodetoo

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

    Spritz Июнь 12, 2010, 5:11 д.п., спустя 23 минуты 49 секунд

    Пример

    CREATE TABLE `test` (
     `fname` varchar(10) NOT NULL default '',
     `fvalue` varchar(80) default NULL,
     PRIMARY KEY  (`fname`)
    );

    INSERT INTO `test` VALUES ('alfa', 'sa sagjsa jshg jasj');
    INSERT INTO `test` VALUES ('beta', 'qtyrwqyrqwyeyw wqwq');
    INSERT INTO `test` VALUES ('gama', NULL);


    И, например, я хочу получить те строки, где fvalue пустая.
    [tt]  WHERE fvalue='' [/tt]
    или
    [tt]  WHERE fvalue=NULL[/tt]
    не проканает. Только
    [tt]  WHERE fvalue IS NULL[/tt]

    Возвращаемся к нашей задаче

    $fvalue = NULL;
    $select->where('fvalue = ?', $fvalue);

    Стандартный класс создаст ошибочный запрос, ты написал почему.
    Решение от NRG создаст условие
    [tt]  fvalue=''[/tt]
    синтаксически верно, но находить запись не будет! В Oracle помоему нашла бы, а в MySql не будет.

    Надо что-то типа

    if (is_null($fvalue)) {
     $select->where('fvalue IS NULL');
    } else {
     $select->where('fvalue = ?', $fvalue);
    }
    Спустя 33 сек.
    всё, бля, молчу, молчу
    ιιlllιlllι унц-унц
  • NRG

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

    Spritz Июнь 12, 2010, 10:24 д.п., спустя 5 часов 12 минут 40 секунд

    artoodetoo, я прекрасно понимаю о чем ты говоришь, но это решение не к месту.
    если ему нужно просто "заглушить" запрос в том случае если value = null, то он все правильно делает, т.е. если value нету, то просто не надо ничего выбирать.
    в твоем же варианте, ты предлагаешь выбирать записи с нулом если value не засетан.
  • kostyl

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

    Spritz Июнь 12, 2010, 10:38 д.п., спустя 13 минут 43 секунды

    если ему нужно просто "заглушить" запрос в том случае если value = null, то он все правильно делает, т.е. если value нету, то просто не надо ничего выбирать

    именно так!
    kostyl, нет, не за спасибо. это был обычный стеб, расслабься

    та ладно, ты по любому обиделся, что я ему сказал, а тебе нет.
  • NRG

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

    Spritz Июнь 12, 2010, 10:47 д.п., спустя 8 минут 52 секунды

    как вы заебали со своим нуллом ))))

    меня все заебло, в киеве 30 градусов жары, повышеная влажность….. пздц короче
    я поехал купатся в озере.
  • artoodetoo

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

    Spritz Июнь 12, 2010, 11:52 д.п., спустя 1 час 5 минут 8 секунд

    ok. было бы совсем грамотно различать когда переменная не определена и когда она равна NULL.


    if (isset($fvalue)) {
    if (is_null($fvalue)) {
    $select->where('fvalue IS NULL');
    } else {
    $select->where('fvalue = ?', $fvalue);
    }
    }

    Спустя 95 сек.
    p.s. если никто не слажает, буду вечером ходить под парусом. заебали со своими кампутерами-шмапутерами
    ιιlllιlllι унц-унц

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