Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (7)
  • Как выбрать последнее по дате значение по группе строк?

    @alexanderzanin
    Может так подойдет?

    CREATE TABLE client_balance
    (
        id SMALLINT AUTO_INCREMENT,
        id_client INTEGER,
        balance_date_start DATETIME,
        balance_start INTEGER,
        balance_date_mid DATETIME,
        balance_mid INTEGER,
        PRIMARY KEY (id)
    );
    
    SELECT cb.*,
           DATEDIFF(cb.balance_date_mid, cb.balance_date_start) AS diff
    FROM client_balance AS cb
    GROUP BY cb.id_client
    HAVING MAX(diff);
    Ответ написан
    2 комментария
  • Как сделать рекурсивное, бесконечное меню?

    @alexanderzanin
    Вот пример без запроса к базе
    <?php
    
    $arr = array(
        array('id'=>100, 'parentid'=>0, 'name'=>'a'),
        array('id'=>101, 'parentid'=>100, 'name'=>'a'),
        array('id'=>102, 'parentid'=>101, 'name'=>'a'),
        array('id'=>103, 'parentid'=>101, 'name'=>'a'),
        array('id'=>104, 'parentid'=>103, 'name'=>'a'),
        array('id'=>105, 'parentid'=>103, 'name'=>'a'),
        array('id'=>106, 'parentid'=>0, 'name'=>'a'),
        array('id'=>107, 'parentid'=>106, 'name'=>'a'),
    );
    
    $new = array();
    foreach ($arr as $a){
        $new[$a['parentid']][] = $a;
    }
    $tree = createTree($new, array($arr[0]));
    var_dump($tree);
    
    function createTree(&$list, $parent){
        $tree = array();
        foreach ($parent as $k=>$l){
            if(isset($list[$l['id']])){
                $l['children'] = createTree($list, $list[$l['id']]);
            }
            $tree[] = $l;
        }
        return $tree;
    }
    Ответ написан
    1 комментарий
  • Что наследуется в ООП? Как работает наследование?

    @alexanderzanin
    1. Все верно, все наследуется.
    2. Тут нужно понимать, для чего существуют public, protected, private. Public используется для использования функционала класса в других частях программы. Если у класса один метод public и условно 10 private методов, то в приватных методах скрыта реализация функционала, а public уже отдает или получает, или то и другое. Классу, который использует public метод другого класса не важно, как работает все внутри приватных методов. Поэтому и смысла нет в изменении public на protected или private. Иначе ваш класс становиться замкнутым и бесполезным.
    3. тут можно почитать про reflection
    Ответ написан
    8 комментариев