Задать вопрос
  • Как заменить по шаблону значения, которые находятся в другом массиве?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Дмитрий, ага спасибо :)
    Я тут сам велосепедирую понемногу, если совсем накостылить:
    $result = implode('*', $apiTemplatesSet1);
    $result = preg_replace('~%id%~', $user['id'], $result);
    $result = preg_replace('~%name%~', $user['name'], $result);
    $result = preg_replace('~%role%~', $user['role'], $result);
    $result = preg_replace('~%salary%~', $user['salary'], $result);
    $result = explode('*', $result);

    Вроде работает, а вроде бы хрен полная. Просто у меня в голове вертится array_map(), но ХЗ как её реализовать.

    P.S. вариант twobomb уже ближе к тому что хочу :)
  • Самозанятые и Upwork?

    yaleksandr89
    @yaleksandr89
    gigacoder, тоже начал задаваться вопросом, так как с нового года такая же катавасия предстоит.
    Спасибо за инфу!
  • Как сделать появление кнопки после нажатия на другую кнопку?

    yaleksandr89
    @yaleksandr89
    PotLo, не совсем понял вас. Даже перенес этот квиз, данная кнопка появляется в третьем вопросе, и перенаправляет вас в блок с результатами вопроса.

    В самом скрипте этого опросника на эту кнопку уже повешено событие (строки 142-242). Если вы хотите поменять поведение по клику на кнопку — вам необходимо корректировать это событие.

    Тот код, который был приведен в начале отвечает за вывод кнопки "результат" на последнем вопросе.
  • Как применять Git начинающему?

    yaleksandr89
    @yaleksandr89
    Гаджи, да в целом все зависит от команды и из правил. Кто-то работает с git flow, правда я с ней ни разу не работал :).
    Там где я выполнял проекты была похожая но несколько упрощенная схема.
    Есть продакшен, в него заливать может только тим-лид, есть ветка девелом и у каждого отдела свои ветки (фронт, бэк). Внутри этих веток есть ветки конкретных разрабов. Но это касается командной разработки.

    Когда я ковыряюсь в одно лицо, обычно 3 ветки: мастер(продакшен), девелоп и далее ветки с конкретными задачами(сделать отправку формы, сделать валидацию и т.д). В Продакшен комичу исключительно из ветки девелом.

    В целом, я бы советовал использовать гит в любых, даже маленьких проектах. Пусть с одной стороны это выглядит лишним, но у меня уже вызывает удивление, когда я работая с проектом не вижу его истории изменений "и почему вообще не использовали гит".

    В добавок, если коммитить мелкие задачи (например верстка шапки, верстка контентной области, верстка подвала"(и их в свою очередь дробить на более мелкие в зависимости от проекта), потом в случае фейла будет очень легко откатиться на нужный участок или понять "где что-то пошло не так".

    И последнее, советую использовать алиасы, до последнего почему то они вызывали у меня отторжение и я использовал полные команды. Но сейчас без них вообще не могу :)
  • Как применять Git начинающему?

    yaleksandr89
    @yaleksandr89
    Гаджи, вы меня не правильно поняли.

    Я говорил о самой технологии, она не предназначена для какой-то конкретной области. Данная технология может отслеживать изменения в чем угодно: в текстовых, в графически, в видео файлах, ему (git) совершенно безразлично, что подсунуть для отслеживания. Надеюсь аналогию сейчас поняли.

    Знание контроля версией сейчас мастхев не только в верстке, я сам сейчас в поисках оффера по бекенду и там он тоже есть, но это не значит, что условно специалист из другой области не сможет использовать Git.
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Pardon Me! Where Do I Find 4giveness?, спасибо за замечание! Переделаю :)
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Pardon Me! Where Do I Find 4giveness?, я только ЗА! :) и всегда стараюсь тайп хинтить и по максимум запрещать себе то, что php в принципе разрешает)))
    Просто когда у тебя не много опыта, ты решаешь проблемы по мере их возникновения). Хороший пример, теперь я буду по обращать внимание на подобные результаты.
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Rsa97, потому что нотисом она стала только с версии 7.4, ранее возвращалось null rfc и соответственно на версиях ниже 7.4 её просто нет.
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Pardon Me! Where Do I Find 4giveness?, собственно если в инпут ($_POST['external_url']) не указать никакого адреса, значение $sth будет false.
    Проблему решил засунув одну строчку под проверку $sth !== false
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Pardon Me! Where Do I Find 4giveness?,
    засунул
    $short_url = "{$_SERVER['HTTP_HOST']}/r_{$sth['created_short_id']}";
    в проверку, которая начинается ниже, ошибок ушла.

    Просто с таким нотисом ранее не встречал. И решил разобраться, так как наткнулся на rfc и там четко было указано, что с следующей версии (8.0) это уже не будет нотисом, а уйдет в ошибку (как я понял). Вот цитата:

    Trying to access array offset on value of type %s Notice Warning

    Rationale: These diagnostics are generated when trying to use scalars as arrays. The first two occur in write contexts, the latter in read contexts. The latter was introduced in PHP 7.4 as a notice with express intention to elevate the severity in PHP 8.0. In line with the symmetrical case on objects, the write case is treated more severely here, as it usually implies data loss.


    Спасибо за то что натолкнули на мысль (пункт 1) и как-то проблема сразу же решилась сама собой :)
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Pardon Me! Where Do I Find 4giveness?, именно с ней связано, я переключил версию на 7.3 - нотиса нет, на 7.4 носит присутствует. Погуглив наткнулся на несколько ссылок (1, 2), где возникает такие же проблемы при смене версии php на 7.4

    Но нигде я не нашел, как убрать этот нотис.
  • Trying to access array offset on value of type bool. Как исправить?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Судя по всему, в $sth у вас записано булево значение (предположительно, false)

    Совершенно верно, возвращает false.

    Функция db_query к стандартным не относится, значит смотрите в своём коде, что она возвращает и почему.

    Эта функцию написал с целью "собрать в ней" подключение к базе, подготовку запроса и его непосредственное выполнение
    db_query

    function db_query(string $sql_query, array $params_execute = [])
    {
        $pdh = db_connect();
        $sth = $pdh->prepare($sql_query);
        $verifiedParams = [];
        foreach ($params_execute as $placeholder => $item) {
            if (is_int($item)) {
                $sth->bindParam(count($params_execute), $placeholder, PDO::PARAM_INT);
                $verifiedParams[] = $item;
            } elseif (is_string($item)) {
                $sth->bindParam(count($params_execute), $placeholder,PDO::PARAM_STR); //data_type: PDO::PARAM_STR (default)
                $verifiedParams[] = $item;
            }
        }
        try {
            $sth->execute($verifiedParams);
        } catch (PDOException $exception) {
            echo 'Technical troubles in the site. Soon all fix.';
            file_put_contents(__DIR__ . '/../../logs/Errors_system.txt',
                date('Y-m-d H:i:s') . ' [db_query]: ' . $exception->getMessage() . PHP_EOL, FILE_APPEND);
        }
        return $sth;
    }



    Посмотрел эту функцию и не многое прояснилось, возвращается false, так как в sth ничего не возвращает ($_POST['external_url'] по умолчанию null):
    $init = $_POST['external_url'] ?? null;
    $preparedLink = prepareExternalLink($init);
    $sth = db_query('SELECT external_url, created_short_id FROM result WHERE external_url=" . $preparedLink . "')->fetch();


    Нужно добавить дополнительную проверку или начиная с 7.4 функция db_query() считается не корректной...
  • Как сделать рамку снизу и вписать в неё текст?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Сначала мне показалось оптимальный вариант, но в итоге пришлось от fieldset+legen отказать :( не поддерживается ie и даже edge не тащит.
    Не знал..
  • Как выстроить элементы в шапке при трансформации меню в "гамбургер"?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    xonar,
    И бургер рисовать не стоило в пэинте)) Можно span сделать и псевдоэлементы сверху, снизу и вот вам бургер)

    Само собой :) это я дорисовал для общего понимания, реализую на css конечно.

    Вы бы код в песочницу бы скинули.

    Вы правы, вот ссылка, тут без изображений. Но общий смысл виден.
    Кстати пробовал дать flex 50%, что-то не вышло :(
  • Что означает эта штука в запросе?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    ааа, и так как на на sql-ex использую различные СУБД видимо это один из вариант реализации, а то меня смутило что объявили псевдоним и на этом все...

    Теперь понятно. Спасибо!
  • Что означает эта штука в запросе?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    ffosters, фига себе :) я думал псевдонимы объявляют, что бы в дальнейшем к ним обратиться, а оказывается ими можно переписывать значения в рядах :\

    Теперь осталось понять зачем, он там использует. И ведь блин нет дампа базы. Спасибо за инфу.
  • Что означает эта штука в запросе?

    yaleksandr89
    @yaleksandr89 Автор вопроса
    Константа, то есть алиас? Просто я две формы записи псевдонимов знаю
    SELECT value1 AS pole1
    или
    SELECT value1 pole1
    Сейчас попробовал на простом примере:
    SELECT maker, 'marker' model, type
    FROM product;

    spoiler
    5ddaf60bc8e68670882867.png


    Получается этим действием мы все значения строк в определенном поле? А какой в этом смысл?

    (запрос) x (или (запрос) as x) - это результат запроса служит новой временной таблицей для другого запроса.

    Прочитал несколько раз..не въехал :). а есть статья или ссылка на офф.докуменатцию? (я просто не знаю, как запрос в гугле записать).

    Понять просто не могу, её что в первом примере, что во втором просто объявили и все (во втором примере. вообще, в конце запроса).