Задать вопрос
  • Как найти дубли в массивах postgres?

    @alexalexes
    Вместо:
    translate(c.qualification_documents,'{}','')
    Используйте:
    replace(replace(c.qualification_documents,'{',''),'}','')

    Эта функция нужна, чтобы обрезать начальные и конечные фигурные скобки.
    Дано: '{1,2,3}'
    Для этой строки порядок действий такой:
    1. translate - убираем скобки -> '1,2,3'
    2. string_to_array - преобразуем строку в тип данных массив -> [1,2,3]
    3. unnest - разворачиваем массив на несколько строк -> первая строка: 1, вторая: 2 ...
    4. cast - в каждой строке преобразуем значение колонки в целое число.
    Все, теперь можно использовать в SQL.
    PS: Если атрибут qualification_documents уже по типу данных является массивом, то шаги 1, 2 и 4 не нужны, куча вложенных функций заметно уменьшится.
    Скорее всего, в вашем случае достаточно использовать unnest (добавил решение Б).
  • Почему не работает рекурсивный вызов?

    @alexalexes
    sort = sort.sort()
    ; поставьте в конце, лучше не бросайте операторы без него, даже если JS позволяет это делать.
    Когда дописывать код будете, то споткнетесь об эту фичу.
  • Как преобразовать запрос в файле sql в формат json?

    @alexalexes
    Если это бэкап базы, то нужно взять из файла строки под insert предложением - это данные таблицы (скорее всего это и будет основное "сырье" для парсинга).
    Нужно пропускать конструкции, которые реконструируют структуру базы, например, создание таблиц, функций, процедур и т.д.
  • Как найти картинки с прозрачным фоном?

    @alexalexes
    Как идею решения в лоб можно использовать следующие шаги.
    1) Обрабатывать только те файлы, форматы которых могут записывать сведения о прозрачном цвете (gif, png).
    2) При загрузке данных текущего файла изображения использовать ту функцию, которая позволяет получить сведения о цвете пикселя с параметром альфа-канала.
    3) Пробежаться по всем пикселям изображения и подсчитать число пикселей, которые имеют значение альфа-канала не более некоего фиксированного порога M значения прозрачности.
    4) Получить долю (%) прозрачных пикселей по критерию 3 от общего количества пикселей.
    5) Если эта доля больше некоего фиксированного порога N (%), то считаем, что в изображении преобладает прозрачный цвет (возможно, он будет фоном, но это не точно).
  • Не могу выйти из безопасного режима?

    @alexalexes
    Узнать, каким способом был создан ключик в процессе установки опции шифрования диска, и собственно, воспользоваться им. Не обязательно, что ключ лежит в учетке MS.
    https://support.microsoft.com/ru-ru/help/4530477/w...
    PS: Не будет ключа - не будет доступа к данным, ничего не попишешь.
  • Как найти связанные элементы с разных таблиц?

    @alexalexes
    Структура у вас такая будет:
    1) wall - id, message
    2) attachments - id, wall_id, path
    где wall_id ссылается на запись таблицы wall.
    Проблема в том, что если вы хотите сохранять записи вложений первыми, то вы не знаете какой вставить wall_id.
    Есть куча вариантов как это решить.
    Вариант 1.
    Когда создается сообщение, клиент отправляет сразу и сообщение и вложения.
    Тут сложностей со вставкой нет. Сохраняем запись wall, получаем его wall_id, используем для вставки вложений.
    Вариант 2.
    Мы не можем создать "честную" запись wall сразу, не отправив заранее записи вложений.
    Решений варианта 2 первое.
    Сохраняем записи вложений с опущенным параметром wall_id, например wall_id приравниваем null.
    Когда добавляем запись wall, то известный wall_id вписываем в записи вложений, где было null.
    Но учтите, если в вашей системе будет несколько пользователей, то нужно как-то различать, какой пользователь или сеанс пользователя мусорит несвязными записями вложений во время редактирования сообщения.
    Для этого в таблице вложений должен использоваться дополнительный атрибут, указывающий на user_id или на его сеанс session_id, так:
    attachments - id, wall_id, user_id, path
    или так:
    attachments - id, wall_id, session_id, path
    И при связывании нужно брать не просто wall_id is null записи, а указывать, что брать нужно записи конкретного пользователя или сеанса.
    Если пользователь бросил редактирование сообщения без сохранения, и при этом он оставил какие-то несвязные записи, то в вашей системе нужно предусмотреть скрипт, который будет периодически подчищать несвязные записи.
    Для определения давно ли добавили записи, чтобы удалять сильно устаревшие, в таблице вложений нужно предусмотреть атрибут даты и время создания вложения. Чтобы можно было легко написать запрос, который подчистит эти старые записи, учитывая их время создания.
    Решение варианта 2 второе.
    Создаем временную запись wall, как только пользователь запросит форму создания сообщения.
    Те же проблемы отслеживания временно созданной записи wall и пути решения такие же как в случае несвязных вложений.
  • Как найти связанные элементы с разных таблиц?

    @alexalexes
    Если у вас повторно используются вложения, то сама задача велит использовать третью таблицу, как вам советовали выше.
    3) wall_attachments - id, wall_id, atach_id.
    Если нет необходимости повторно использовать вложения, то достаточно атрибута внешнего ключа в табилце вложений.
    attachments - id, wall_id, path
    PS: наименование parent_id используется, как правило, для ссылки на записи той же таблицы, это для описания древовидных структур подходит.
  • Как перекрасить таблицу?

    @alexalexes
    Если там по макету нужен какой-нибудь нежно-голубовато белый, то он может не быть строго #fff.
  • Как перекрасить таблицу?

    @alexalexes
    Вы не смогли добраться до css файла (мешает кэш и т.п.), или не смогли определить, что цвет границы таблицы задается в этом селекторе?
    table, table th, table td
    {
        font-size: 16px;
        border: 1px solid #2e7396;
        padding: 5px 10px;
    }
  • Не работает метод .remove() в JavaScript?

    @alexalexes
    list.remove(item_id);
    А вы уверены, что этот метод будет ожидаемо удалять элемент порядка item_id в контейнере list?
  • Почему не скачивается файл?

    @alexalexes
    include предназначен для монтирования выполняемого кода php, а не для данных.
    У вас скорее всего проблема развязать логику отдачи файла от штатной выдачи контента обычной страницы.
    Если не получается, то выдачу файла нужно вынести в отдельный php-скрипт.
    Например, в index.php у вас генерация HTML, а в download.php - отдача файлов клиенту.
    Подключать download.php каким либо образом к index.php не нужно, нужно клиенту обратиться к нему по url в браузере:
    имя_вашего_сайта/download.php
  • Почему не скачивается файл?

    @alexalexes
    Если вы пытаетесь сконструировать содержимое файла как HTML, то имейте ввиду, что чтобы Excel воспринял содержимое, нужно руководствоваться как минимум нотацией XML.
    Чтобы посмотреть пример генерации такого файла, в MS Excel сохраните файл как "Таблица XML 2003".
  • Почему не скачивается файл?

    @alexalexes
    Откройте скачиваемый файл в блокнотоподобном текстовом редакторе и посмотрите в начале файла, что там есть помимо бинарных данных. Возможно, php отдает не только тело файла, но и какое-нибудь предупреждение.
  • Как интерпритатор при разбвивании на лексемы понимает, что пробел это лексема, а не разделитель?

    @alexalexes
    Интерпретатор в ходе синтаксического разбора при посимвольном проходе текста кода, руководствуясь графом синтаксического разбора (как наглядный пример, можно взглянуть на диаграммы Вирта, особенно, на реализации разбора чисел в разных системах счисления), при проходе символа пробела фиксирует состояние того, что обнаружена лексема var, из вершины графа этого состояния имеются дуги только на символы начала лексемы переменной - определяется тем самым то, что ожидается при чтении следующего символа.
  • Как удалить добавленный класс?

    @alexalexes
    Значит, нужно предотвратить всплытие события клика на другие обработчики. См. ответ на вопрос.
  • Как удалить добавленный класс?

    @alexalexes
    Если элемент .close-popup лежит внутри элемента .inner-item, то вполне возможно, что событие клика всплывает и запускаются оба обработчика событий. Проконтролируйте этот момент, выставив точки останова в коде обоих обработчиков и понаблюдайте, что происходит при клике на .close-popup.
  • Выборка рандомно-сгенерированного текста в sql?

    @alexalexes
    Если будет задействован PL/pgSQL, то вообще не принципиально, как там будет выглядеть реализация.
    Главное, сформулировать математику этого решения, потом сформулировать псевдокод решения, а потом впихнуть в выбранную среду разработки.
  • Выборка рандомно-сгенерированного текста в sql?

    @alexalexes
    По пункту 1 я имел ввиду, что вам нужно предложить функцию, которая:
    а) взвесит некий фрагмент строки и даст ему нормированный вес, скажем, между 0 - не случайная последовательность символов, и 1 - полностью случайная последовательность символов.
    К примеру, наша функция g = f(s) с аргументом s = 'Мама мыла раму' вернет значение g = 0.1;
    при s = 'мвма мкла рамн' вернет, скажем, g = 0.5;
    при s = 'мнпм выкц пршо' вернет, скажем, g = 0.9;
    б) превратится в критерий случайности, если этой функции задать минимум один порог.
    Скажем если g >= 0.8, то предложенный фрагмент строки считаем составленный из случайных символов, если g не превышает этот порог, то скорее всего символы в фрагменте не случайны.
  • Выборка рандомно-сгенерированного текста в sql?

    @alexalexes
    1) Каков критерий случайности генерации фрагмента текста? (Навскидку могу предложить взять меру энтропии, но это не точно)
    2) Некий алгоритм должен детектить самый маленький фрагмент текста (ленивый стиль поиска) или самый большой (жадный стиль поиска)?
    3) Находить первый попавшийся фрагмент текста, удовлетворяющий условию 1 или все возможные варианты внутри исходного текста?