Задать вопрос
  • Как реализовать SQL запрос, выборка по дате?

    @alexalexes
    При этом достаю только те значения, которые имеют самый старший "ключ"

    Ваш запрос не выбирает "самым-самый", ваш запрос выбирает нечто с фиксированным параметром:

    WHERE tab2.dateMessage > 0 and tab1.indexObject = 11222

    Чтобы взять самое-самое, например, по дате, выборку нужно отсортировать.
    Обратите внимание, сортировать можно по нескольким колонкам, да и не только по колонкам.
    Ответ написан
    Комментировать
  • Как исправить размытый текст в Windows Forms?

    @alexalexes
    В поиске меню Пуск забиваем "ClearType". Выходит эта самая настройка опции. Она?
    Ответ написан
  • Копирование таблиц в базе данных?

    @alexalexes
    Вы хотели сказать столбцы?
    Добавьте их в структуру, куда нужно перенести значения, с null опциональностью.
    ALTER TABLE test2.board ADD data_razm datatime null AFTER moder;
    ALTER TABLE test2.board ADD ip        tinytext null AFTER data_razm;


    А потом сделайте сложное обновление
    update test2.board t2b, test.board tb
    set t2b.data_razm = tb.data_razm,
          t2b.ip = tb.ip
    where t2b.id = tb.id


    Наверняка, еще в реальном времени данные в таблице изменяются.
    В этом случае нужно создавать триггеры, чтобы они синхронизировали изменения в этих таблицах.
    Если есть реальное время, то сначала делаем триггеры, а потом сложное обновление.
    Ответ написан
    Комментировать
  • Как получить индекс массива внутри массива во Vue.js?

    @alexalexes
    Когда перебирать начнешь массив, тогда и получишь индексы.
    https://learn.javascript.ru/array-iteration

    У вас задача на знание голого JavaScript.
    var my_array =
    [
      {
        data: 123
      },
      {
        data: 845
      },
      {
        data: 'dsdsd'
      }
    ];
    
    my_array.forEach(function(item, i, arr)
    {
      switch(i)
      {
        case 0:
          item.operation = item.data * 5;
          break;
        case 1:
          item.operation = item.data * 2;
          break;    
        default:
          item.operation = item.data + 'qwqwqw';
      } 
    });


    PS: Про то, как нужно положить внутрь foreach this, читайте тут.
    Ответ написан
  • Как вычислить сумму часов?

    @alexalexes
    Чуть посложнее, чем предыдущая ваша задача. Постарайтесь самостоятельно разобраться, как работать со временем.
    $arraytime = ['07:01:05', '06:21:30', '08:15:15', '07:13:08', '06:02:00', '09:21:10', '12:54:48'];
    $sum = 0;
    foreach($arraytime as $time)
        $sum += strtotime($time) - strtotime('00:00:00');
    echo sprintf('%d:', $sum / 3600).date('i:s', $sum);
    Ответ написан
    Комментировать
  • Инициализация устройств через Bluetooth адаптер до загрузки системы?

    @alexalexes
    Чтобы bluetooth-клавиатура заработала сразу после старта питания нужно:
    1) Включить поддержку USB-устройств в BIOS. Опция USB Legacy Support, USB Device Function и тд.
    2) Адаптер Bluetooth должен уметь прикидываться HID-устройством на стороне хоста (HID proxy mode), если хост по какой-то причине не может поднять BT, то есть быть весьма самостоятельным устройством обмена.
    Ответ написан
  • Как вычислить кол-во в часов из двух времени?

    @alexalexes
    Как вариант.
    $starthours = '08:15:09';  $stophours = '16:45:19';
    $diff = strtotime($stophours) - strtotime($starthours) + strtotime('00:00:00');
    echo date('H:i:s', $diff);
    Ответ написан
    Комментировать
  • Что будет если раздвоить интернет кабель?

    @alexalexes
    А провайдеру вы тоже будете за 2 занятых порта платить?
    Или кабель-каналы в плинтусах уже заняты, и некуда уложить еще один?

    Кроме, физической занятости кабель-каналов и портов, никакие причины не обосновывают применения того, что есть на фото.

    Ставьте роутер на входе и разводите от него кабели во все комнаты. Если какому-то устройству нужен доступ напрямую в сеть провайдера, например IP-TV, то на роутере настраивается мост между портами. Остальные потребители трафика в вашей квартире прекрасно будут себя чувствовать в локальной сети, которую подымет роутер.
    Ответ написан
    Комментировать
  • Выборка агрегированных значений с учетом null?

    @alexalexes
    Сможете воспроизвести Oracle выражение Rank() over (partition by ... order by ...) в MS SQL, то будет легко.
    select last_move.book_id, last_move.rack_id, last_move.board_id,  -- последнее местонахождение книги
               first_move.date_from, -- дата первого появления на складе
               last_move.date_to -- дата последнего перемещения
    from
    -- подзапрос, получаем первые записи появления каждой книги на складе
    (select *
       from (select t.*, rank() over (partition by t.book_id order by t.date_from) rnk
                  from table t)
    where rnk = 1) first_move
    
    join
    -- подзапрос, получаем последние записи перемещения каждой книги на складе
    (select *
       from (select t.*, rank() over (partition by t.book_id order by t.date_from DESC) rnk
                  from table t)
    where rnk = 1) last_move
    
    -- сопоставляем записи
    on first_move.book_id = last_move.book_id
    Ответ написан
    3 комментария
  • Что можно создать на чистом JS без знаний верстки( HTML5/CSS3)?

    @alexalexes
    JS создан как обслуживающий язык программирования для DOM-модели документа HTML.
    Его прямая обязанность манипулировать объектами документа и поддерживать обмен запросами с сервером. Для локальной машины, где он выполняется, среда ограничена, никаких вам доступа к файловой системе, процессам ОС. JS ограничен своей средой выполнения внутри браузера.
    Хотите писать на JS с полноценным окружением, то вам нужно обратиться к node.js. Но это уже backend-разработка.
    Ответ написан
    Комментировать
  • Как перевести сайт на русский язык?

    @alexalexes
    Машинный перевод будет очень топорный, если контент со специфической тематикой.
    Вообще, сейчас куча всяких программных комплексов, например, Lingvo, также можно напрячь какой-нибудь API, если нужно провернуть перевод в режиме онлайн.
    Ответ написан
    1 комментарий
  • Может ли MySQL 5.7 принимать в процедуры и INSERT-запросы VARCHAR-переменные в сыром виде (сырые строки)?

    @alexalexes
    Строка запроса при обработке SQL интерпретатором уже будет рассматриваться синтаксическим аппаратом SQL, в нем уже не отличишь, что реально имели ввиду, когда подставляли параметры.
    Предобработка такой строки регулярными выражениями, хоть может дать толк на отдельных тестовых примерах, но не убережет вас от sql-инъекций.
    Разработчик внешнего приложения должен быть сурово наказан за то, что формирует запрос вот так:
    $sql = "insert into table_name(name) value('".$str_param."')";

    А его приложение должно быть исключено из продакшена, как содержащее уязвимость, позволяющее атаковать sql-инъекциями, до того как не будет внесен фикс такого плана во всех случаях (!!!), где приложение контактирует с СУБД, а не только в этом запросе:
    $sql = "insert into table_name(name) value(:param1)";  //текст запроса с метками для вставки параметров;
    $prep_sql = $sqlconnect->prepare($sql); //подготовка SQL-запроса, фактически, синтаксический разбор и выявление меток, куда вставлять параметры, проверка ошибок;
    $prep_sql->bindParam('param1', $str_param, STRING_TYPE); //связываем параметры с метками в запросе, проверяем тип входного параметра;
    $prep_sql->execute(); //выполняем запрос

    PS: Последний пример написан на псевдокоде, но посыл должен быть понятен.
    Ответ написан
    Комментировать
  • Запрос периода времени в течение дня?

    @alexalexes
    Если вам нужно дать номер интервала для каждой записи, то вот запрос.
    Потом используйте любую группировку и аналитику для расширения запроса, как вам удобно.
    SELECT t.event_date,             -- атрибут таблицы типа datetime, для которого определяем интервал, выведен для того, чтобы наблюдать за процессом отладки
    case                                                                         -- SQL-конструкция вида "case  when ... then ... else ... end", с помощью которой можно выводить не только конкретное значение атрибута, но и задавать условие, при котором конечное значение  результата будет вычисляться по-разному в пределах одной выбранной записи.
      when TIME_TO_SEC(t.event_date) >= inter.begin AND TIME_TO_SEC(t.event_date) <= inter.end                           -- если t.event_date, выраженное в суточных секундах, находится в отрезке [inter.begin,  inter.end], также выраженных в суточных секундах,...
      then floor((TIME_TO_SEC(t.event_date) - inter.begin) / inter.width)           -- ... то вычисляем количество полных  интервалов
      else null         -- иначе, если время не попадает в период отслеживания, то выводим "пусто", чтобы явно указать, что значение не находится в интересуемом периоде
    end as full_interval_number      -- кол-во прошедших полных интервалов, начинается с 0
    FROM table t,                     -- ваша таблица
        (select TIME_TO_SEC('09:00:00') as begin,            -- начало дневного периода
                TIME_TO_SEC('18:00:00') as end,                 -- конец дневного периода
                TIME_TO_SEC('00:15:00') as width                -- ширина интервала
         ) inter                    -- параметрический подзапрос, все настраиваемые константы в одном месте - удобно при отладке
    Ответ написан
  • Возможно ли без дублирования кода реализовать сортировку по различным полям в таблице?

    @alexalexes
    Если оперировать текстом запроса, то добавьте параметр в order by.
    order by case 
                when :order_param = 1 then col_1
                when :order_param = 2 then col_2
               end,
               case 
                when :order_param = 1 then col_2
                when :order_param = 2 then col_1
               end

    Это значит, если задан, :order_param = 1, то сортировка будет эквивалентна выражению order by col_1, col_2.
    Если :order_param = 2, то order by col_2, col_1.
    Кейс можно встраивать и в подзапросы, если у вас сложное построение запроса.
    Ответ написан
    Комментировать
  • Формирование запроса?

    @alexalexes
    А почему не сразу в запросе?
    SELECT *
       from (SELECT  servers.id,
                               servers.game,
                               servers.votes,
                               @n := @n + 1 AS rank
                     FROM servers, (SELECT @n := 0) r
              ORDER BY servers.votes DESC) a 
    where id = 3
    Ответ написан
    6 комментариев
  • Как составить запрос?

    @alexalexes
    Решить это можно только в процедурном контексте программирования при постобработки результатов запроса, например, на PHP.
    /*Функция преобразования выборки в матрицу */
    function get_matrix($rows)
    {
      // получаем все значения по id - измерению матрицы (строки матрицы)
     // можно сделать запросом select distinct id from table order by id
      foreach($rows as $row)
        $id_dem[$row['id']] = 1;
    
     // получаем все значения по date - измерению матрицы (столбцы матрицы)
     // можно сделать запросом select distinct date from table order by date
      foreach($rows as $row)
        $date_dem[$row['date']] = 1;
    
    $map = null;   // если нет значений размерности матрицы, то функция вернет null
    
    // получаем карту не-null значений - непустые ячейки матрицы
      foreach($rows as $row)
        $map[$row['id']][$row['date']] = $row['count'];
    
    // дополняем карту null значениями - получаем полноценную матрицу
      if(isset($id_dem) && isset($date_dem))
        foreach($id_dem as $id => $val_id)
          foreach($date_dem as $date => $val_date)
            $map[$id][$date] = array_key_exists($id, $map) && array_key_exists($date, $map[$id])
                                 ? $map[$id][$date] : null;
       return $map;
    }
    Ответ написан
    Комментировать
  • Куда податься с знаниями PHP?

    @alexalexes
    Можно подтянуть знания клиентской части веб: CSS+HTML+JS, и сделать небольшой сайт-визитку для маленькой конторы. Владельца конторы, для которой нужна небольшая страничка в Интернете, найти через знакомых, так к тебе будут предъявлять меньше требований.
    Сможешь справится с заданием - получишь ценный опыт, не сможешь - не страшно.
    Ответ написан
    Комментировать
  • Запись звука JS с микрофона компьютера И телефона в браузере?

    @alexalexes
    Библиотеки используют для этих целей Web Audio API.
    Если только нужно два действия: записать и проиграть, то достаточно изучить вот это руководство, чтобы написать свой велосипед.
    Полной совместимости со смартфонами добиться не получится, где-то браузер - это полноценное медийное приложение, а где-то просто просмотрщик HTML, а медийный функционал доступен только через сторонние приложения, установленные непосредственно на смартфоне.
    Ответ написан
    Комментировать