• Как составить запрос для выборки без повторений?

    @alexalexes
    ... and not exists (select 1
          from ... такая же конструкция from как в основном запросе, но псевдонимы таблицы A1, B1...
        where ... такие же условия как в основном запросе, но с псевдонимами A1, B1
           and  соединяем условия из внешнего запроса A, B в обратном порядке продавцов A1, B1, город общий тоже)

    И последний штрих - добавить distinct, если продавцы повторяются, но это страховка от повторений, можно не добавлять.
  • Как составить запрос для выборки без повторений?

    @alexalexes
    Могу дать подсказку, что нужно соединить таблицу продавцы саму с собой по общему атрибуту город:
    select P1.*, P2.*
    from [Продавцы] as P1
    join [Продавцы] as P2 on P1.[Город] = P2.[Город]
    -- where

    Но поскольку данный сайт не для халявных ответов, а для обмена опытом. Вы должны подумать, что написать в where, чтобы полностью выполнить условия задачи.
  • Как вывести изображение с ноутбука по VGA?

    @alexalexes
    Если таким же способом, как вы устанавливали ОС, на переподключаемом HDD донастроить RDP доступ, и если драйверы сетевой карты корректно встают на Asus K50AF и ноут определится в сети, то на него можно будет зайти через RDP и посмотреть, что твориться с видеовыходами (а есть ли вообще видеодрайвер?), когда пытаетесь подключить VGA.
    PS: Это способ без погружения в диагностику электронных компонентов на материнке.
    PPS: А может для ваших задач и RDP будет достаточно. Можно без экрана из такого аппарата сделать торрент-качалку, с общим сетевым доступом к диску, куда качает торрент. Ставить задачи качалке можно по RDP через другой комп.
  • Можно ли присвоить имя файла функции, которая в нём находится?

    @alexalexes
    Когда-нибудь имен глобальных функций будет не хватать, или возникнут коллизии. Тогда захотите обернуть некоторый набор функций в класс, превратив их в методы.
    В этом случае для переделки своего composer можете закинуть на обдумывание еще такую конструкцию.
    class MyClass
    {
       public function MyMethod($agr1)
       {
       } 
    }
    $MyClass_object = new MyClass;
    $callable_var = [$MyClass_object, 'MyMethod']; // это с виду просто массив, но интерпретатор знает, что делать, если его вызвать
    $callable_var($arg1); // это эквивалентно вызову $MyClass_object->MyMethod($arg1); - то есть можно сделать  такую вызываемую переменную, что по тексту кода не будет светится ни имя класса объекта, ни имя вызываемого метода.
  • В чём ошибка запроса?

    @alexalexes
    INNER JOIN [Open demand] ON ... ON ...
    что-то многовато On-ов для одного join. После ON должна быть корректная конструкция с точки зрения булевой алгебры (всякие выражения с and или or, in любой вложенности ), а не еще один on.
  • Как получить timestamp,обрезав пустое время?

    @alexalexes
    Либо переводить на клиенте (на самом-самом фронтенде) формат даты, либо извлекать запросом в виде отформатированной строки.

    Можете сделать view с полем your_format_date, чтобы строковое представление даты радовало глаз.
    Но для сортировки и сравнения вам придется оставить оригинальное поле в выводе view, так как строковое представление даты не годится для этих целей, только для вывода пользователю.

    Ответ дописал.
  • Как НЕ фиксировать транзакцию после отработки php скрипта?

    @alexalexes
    Значит, все таки у вас вариант А. Вы делаете продвинутый редактор для админки.
    В этом случае, с точки зрения безопасности, если набор прав профиля пользователя админки (он же администратора) имеет ту же полноту набора прав роли пользователя базы данных, под которым он соединяется с базой, то не имеет значения, будет ли этот пользователь пытаться сделать sql-инъекции к базе с которой он работает или нет. Он все равно не превысит свои права доступа, что разрешено ролью в базе.
    Главное, не оставляйте такой механизм взаимодействия для обычных посетителей сайта, где их права ограничиваются не ролью в учетке СУБД, а бизнес-логикой.
    Конкретно в этом примере, все происходит при нажатии на кнопку в таблице.
    Запускается функция, которая на вход принимает запрос и отправляет его дальше ajax'ом.

    Значит, когда вам нужно выполнить что-то, что требует включения режима транзакции и удержания его в реальном времени, в этой ситуации вам нужно общаться с сервером не по ajax, а через web socket. Подключаясь к отдельному php скрипту, сервер которого работает в особом режиме сессий (общие сессии), настройки сервера не должны завершать скрипт по таймауту (или делать его продолжительность в несколько часов - в пределах жизни сессии администратора), а код скрипта должен работать в бесконечной петле.
  • Как правильно заменить текст в html?

    @alexalexes
    Если парсить регуляркой весь документ сложно, то:
    1. можно конвертировать текстовое представление страницы в DOMObject.
    2. Получить список указателей на DOM узлы которые script и содержат ViewGifImage, нужно придумать запрос такой выборки.
    3. Пределах содержимого узла вида script можно получить его содержимое и парсить регуляркой только его содержимое.
    4. Достали ссылку регуляркой? - Собираем DOM узел img с нужным атрибутом src.
    5. Методом replace заменяем script узел на img узел в DOM объекте, возможно этим методом.
    6. Переходим к следующим узлам script и повторяем шаги 3-5.
    7. Закончили обрабатывать все узлы script. Преобразуем DOMObject обратно в текстовое представление.
  • Можно ли подключить старый монитор с VGA к видеокартам с цифровыми разъемами и наоборот?

    @alexalexes
    То есть, имея видеокарту с фото gtx1050 с hdmi/dp-dvi-d нельзя подключить монитор с одним лишь VGA через переходник? нужен именно конвертер?

    Именно, так. В такой видеокарте вообще не предполагается переводить вывод изображения в аналог.
    глупый вопрос: А можно как-то визуально отличить простой переходник от преобразователя?

    1. Цена на конвертер может быть существенно выше чем у кабеля, но эта зависит от фирмы/noname производитель.
    2. Плата конвертера требует заметного по габаритам корпуса, но скорее всего может не сильно отличаться от габаритов разъема DVI.
    3. Если цифровой вход имеет недостаточные ресурсы по питанию, чтобы запитать конвертер, то на конвертере будет дополнительный разъем для подключения БП (тогда это точно конвертер!).
    4. Можно встретить кабель (не конвертер) HDMI to VGA. Но в большинстве видеокарт работать не будет, это какое-то нишевое решение для определенной модели оборудования.
  • Странное поведение document.write()?

    @alexalexes
    Такое ощущение, что этот JS код, предназначенный для браузера, компилируется на стороне сервера или это компилирует фреймворк, прежде чем отдать браузеру.
    По идее, этот фрагмент нужно протащить через стек так, чтобы все промежуточные "умные компиляторы" - сервер (если у вас NodeJS), фронтендовый фреймворк воспринимали эту инструкцию не как код, а как статичный текст (требуется экранирование), а конечный интерпретатор - движок JS браузера подхватил эту инструкцию не как текст а как код (на его этапе получения этого фрагмента все экранирующие слои должны отсутствовать с точки зрения движка браузера).
    let mywindow = window.open('', 'PRINT', 'height=400,width=600');
    
        mywindow.document.write('<html><head><title> Some titke </title>');
        mywindow.document.write('</head><body >');
        mywindow.document.write('<h1>' + document.title  + '</h1>');
        mywindow.document.write('</body></html>');
    
        mywindow.document.close(); // necessary for IE >= 10
        mywindow.focus(); // necessary for IE >= 10*/
    
        mywindow.print();
        mywindow.close();

    Если вы этот код в консоли браузера вставите, то появится меню печати?
  • Notepad++ есть ли у него форки?

    @alexalexes
    Контекстное меню Notepad++ настраиваемое.
  • Как получить длину JSON объекта?

    @alexalexes
    А если распарсить?
    JSON.parse(json_string).length
  • Лучше использовать целое число или строку для индикатора состояния данных?

    @alexalexes
    Это специфический тип данных. В каких-то СУБД он реализован, в каких-то нет.
    Если рассматривать реализацию, которая будет работать в любой СУБД, без оглядки на то, что есть альтернатива в виде особого типа данных, то это нужно делать так, как я ответил.
  • На чем дешево и долго хранить десятки Тб информации сейчас?

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

    @alexalexes
    Потому что число 32 лежит справа от интервала (21;31), и оно не входит в него.
    И 20 лежит слева от этого интервала, и тоже не входит в него.
    А вам нужны только те целые числа, которые входят в этот интервал.
  • Почему через prompt не записываются данные?

    @alexalexes
    Алексей Уколов, давно не смотрел новшества в JS.
    = +
    это аналог функции parseInt()
    а вот
    +=
    это как раз инкремент/конкатенация.
  • Почему через prompt не записываются данные?

    @alexalexes
    = +
    Консоль браузера не ругается на эту вольность?
    parseInt к промту не хотите применить, чтобы избежать конкатенации строк?
  • Как создать RAID-хранилище из старых SATA HDD?

    @alexalexes
    Для домашних целей хранилище из RAID не имеет преимуществ по сравнению с одним/двумя многотерабайтниками, поскольку вы будете часто менять не сильно новые диски в этом массиве.
    Вы уверены, что хотите взять роль администратора по резервному копированию и поддержания живучести данных, а не просто иметь 10 Тбайт файловой помойки?
  • При клике на один элемент кликнуть другой?

    @alexalexes
    mletov, в обработчике клика любого элемента поджечь событие click конкретного элемента.