• Неправильно отображается Оперативная память?

    @alexalexes
    Потому что с другой стороны материнской платы, ровно на том же месте находится 2-ой слот ОЗУ с точно такой же планкой памяти.
    Ответ написан
    5 комментариев
  • При решении каких задач может пригодится команда CROSS JOIN (SQL)?

    @alexalexes
    В задачах, где условия inner join нужно вывернуть наизнанку.
    Посмотреть выборки, которые не охватывают типичные запросы с присоединением.
    Ответ написан
    1 комментарий
  • Изготавливают ли сейчас современные материнские платы по типу Intel Q75 Express? Где такие можно найти?

    @alexalexes
    Я думаю, можно попробовать посмотреть в сторону Mini-ITX плат. Недостающие PCI-e порты прокидывать через переходники-райзеры.
    Ответ написан
    Комментировать
  • Как убрать лишнюю букву в дате комментария?

    @alexalexes
    Значит не полностью убрали время.
    Точнее, прекращения вывода времени недостаточно, нужно еще исправить шаблон формирования даты (+ время), чтобы предлог не выводился вообще, или выводился при непустой составляющей времени (или когда оно не равно 00:00).
    Ответ написан
    Комментировать
  • Как сделать переадресацию с www.поддомен.сайт.ru на поддомен.сайт.ru?

    @alexalexes
    У вас выписан сертификат для доменов 3 уровня .сайт.ru.
    Чтобы работало www.поддомен.сайт.ru без предупреждения о недействительном сертификате, нужен сертификат 4-го уровня .поддомен.сайт.ru.
    Ответ написан
    Комментировать
  • Как сменить формат большому количеству файлов?

    @alexalexes
    1. Открыть командную строку.
    2. С помощью команд смены диска, смены каталога выбрать текущий каталог, в котором нужно произвести переименование.
    3. Запустить команду:
    FOR /R %f IN (*.bin) DO REN "%f" *.exe
    которая переименует все файлы в текущем каталоге, в том числе и во вложенных тоже.
    Ответ написан
    Комментировать
  • Как получить все имена загруженных изображений из массива и записать в бд php, redbean php, ajax?

    @alexalexes
    Вам сначала нужно подготовить структуру таблиц базы данных, чтобы можно было хранить несколько изображений продукта. Сейчас таблица products хранит сведения об изображении в одном атрибуте image. Вам нужно создать еще одну таблицу, например product_images, в которой будут храниться записи сведений об изображениях продукта - с указанием внешнего ключа product_id в каждой записи.
    А в php поменяется это место:
    $product = R::dispense('products');
       $product->image = $_FILES[$input_name]['name'][0]; // СЮДА НАДО ЗАПИСАТЬ МАССИВ ИМЕН ИЗОБРАЖЕНИЙ (сейчас записано только имя первого изображения)<br>
       R::store($product);

    На что-то такое:
    $product = R::dispense('products');
    $product_id = $product->id;
     foreach($files as $file)
    {
      // Вставка сведений из $file в таблицу product_images с входным параметром $product_id
    }

    Вторым этапом будет изменение методов чтения сведений об изображениях продукта. Чтобы метод адаптивно читал (по старому формату хранения) атрибут image из записи таблицы products, а в случае его пустоты - пытался читать сведения из таблицы product_images (по новому формату хранения).
    Ответ написан
    Комментировать
  • Как написать запрос?

    @alexalexes
    Предположу, что в ORM нет возможностей для написания второго уровня вложенности подзапросов.
    Вероятно, ответ будет таков:
    $this->db->select('инструктор, дата, SUM(длительность)');
    $this->db->from('( SELECT DISTINCT инструктор, дата, начало, длительность
                                    FROM таблица ) AS алиас');
    $this->db->group_by(['инструктор', 'дата']);
    $query = $this->db->get();
    Ответ написан
  • Как сделать добавление в избранное?

    @alexalexes
    20 таблицами в которых рассортированы сериалы по разным жанрам.

    Есть подозрение, что у вас структура таблиц не отвечает условиям нормализации (гуглите 1, 2, 3-я нормальная форма). Чтобы помечать фильмы одним или несколькими жанрами, достаточно 3 таблицы (гуглите как реализовать связь "многим-ко-многим"), в независимости от кол-ва жанров и фильмов.
    Чтобы хранить избранное, достаточно одной таблицы, в независимости от кол-ва пользователей.
    Таблица Fav_movie:
    id - идентификатор записи избранного,
    user_id - идентификатор пользователя
    movie_id - идентификатор фильма
    add_date - дата и время добавления
    position - поле для определения приоритета сортировки в пределах одного пользователя
    Ответ написан
  • Как выполнить функцию после click?

    @alexalexes
    Вместо click берете более тонкое по срабатыванию событие - mouseup.
    Не забудьте, что у сенсорных устройств есть свой аналог этого события - touchend.
    Ответ написан
    Комментировать
  • Как правильно сделать иконку возле текста?

    @alexalexes
    Чтобы применить свойство text-decoration на названии пункта меню, но не применять на псевдо элементе, нужно название обернуть в span:
    <a href="#" class="menu__item menu__item--sport"><span>Зимний спорт</span></a>

    Чтобы псевдо-элемент after был вплотную к названию, он, как вариант, должен быть строчным элементом. То есть, нужно отменить для него абсолютное позиционирование. Также, его нужно изобразить символом, а не геометрическим прямоугольником:
    .menu__item
    {
      text-decoration: none;
    }
    .menu__item > span
    {
      text-decoration: underline;
    }
    .menu__item:after
    {
      position: unset;
      content: '▪';
      margin-left: 5px;
    }
    Ответ написан
    Комментировать
  • Как автоматизировать выполнение sql-запросов?

    @alexalexes
    Зависит от СУБД, а не от IDE. Есть ли в СУБД планировщик запросов по расписанию.
    А универсальный способ - это наличие любой среды выполнения, способной вызывать скрипт по расписанию - хоть shell, хоть cron + php/python, хоть планировщик windows + любой exe со скомпилированным запросом.
    Ответ написан
    7 комментариев
  • Почему не работает группировка SQL?

    @alexalexes
    Вероятно, не кастует год для группировки.
    Вместо:
    group by year ...
    нужно:
    group by EXTRACT(year from CAST(invoice_date as date)) ...

    Если функция extract не пригодна для группировки, то сделайте еще одну обертку подзапроса, чтобы на верхнем уровне год оказался уже вычисленным полем.
    Ответ написан
  • Как вставлять картинки через код css?

    @alexalexes
    Вы пытаетесь работать с CSS как с шаблоном - для этого нужно использовать препроцессор CSS такие как Sass, Stylus, Less.
    Если у вас учебный проект, то это отдельная глава или даже раздел для набивания навыков и шишек.
    Если проект боевой и довольно простой, то можно не ввязываться в дебри динамической генерации стилей, условится, что статичные свойства стилей вы записываете в файлах CSS, а динамические - в html вставками:
    <style>
      .user-114__avatar
    {
       background-image: url({{thumbnail}});
    }
    </style>
    ...
    <!-- какие-то общие стили для аватара прописаны в классе user__avatar в файле css, а изменяемые прямо в HTML-->
    <div class="user__avatar user-114__avatar">
    </div>

    или инлайн-стилями:
    <!-- какие-то общие стили для аватара прописаны в классе user__avatar в файле css, а изменяемые прямо в инлайн-атрибуте тега-->
    <div class="user__avatar" style="background-image: url({{thumbnail}});">
    </div>

    PS: Тег img некорректно использовать без src, фон в нем может выступать только дополняющим свойством, например, закрывать прозрачные участки картинки src. И с фоновым изображением придется работать по-другому, чтобы привести в порядок адаптивность элемента.
    Ответ написан
    3 комментария
  • Какую оперативную память можно докупить Acer Aspire A517-51G?

    @alexalexes
    Есть похожий вопрос по вашей модели и ответ по ссылке:
    https://qna.habr.com/q/579631
    Ideally, one would add matching RAM, and to the extent possible, that’s what I did: I got a 16GB G.Skill DDR-2133 (PC4 17000, 260-pin, CL 15, 1.2V) module on sale at Newegg. Sources suggested that the speed difference between 2133 and 2400 would be virtually unnoticeable, whereas the price difference in this instance was quite noticeable.

    Later, when it came time to examine the BIOS information (below), I would see confirmation that the system was recognizing 20480 MB (i.e., 20GB) of RAM. That was because the system arrived with 8GB: 4GB in the Adata stick, and 4GB soldered to the motherboard. I chose that quantity of RAM because I had a habit of multitasking, with a lot of browser tabs open, and experience suggested that my system would be noticeably faster, on many occasions, with more than 16GB. I could have tried a 32GB module, budget permitting, but Acer’s specifications page said 20GB maximum, and I believed them.

    То есть, возможно поставить 16 ГБ и получить максимальные 20 ГБ для этой модели ноутбука без перепайки чипов.
    Ответ написан
    Комментировать
  • В каких отраслях прогеры могут быть заменены на ИИ/Конструкторами?

    @alexalexes
    Вопрос философский и не имеет конкретного ответа.
    Там, где дешевле использовать ИИ и типовые решения.
    Ответ написан
    Комментировать
  • Как использовать сессию для всех клиентов одновременно?

    @alexalexes
    memcached, redis - можно использовать как буфер обмена между php процессами, но не более того. Для долговременного хранения данных нужна СУБД.
    Ответ написан
  • Можно ли пользоваться Ajax с помощью SQL?

    @alexalexes
    В зависимости от требования к скорости доставки изменений для всех пользователей, то эту задачу можно решить разными способами.
    1. Низкие требования к скорости оповещения - "когда пользователь решит сам обновить или перейти на другую страницу, тогда и выведем новое состояние (новый статус, новое сообщение)".
    Классическая форма взаимодействия браузера с сервером.
    Один пользователь набирает сообщение в обычной форме (без ajax). Отправляют его на сервер. Сервер сохраняет его в любой форме. Когда другие пользователи запрашивают у сервера страницу с сообщением или статусом, то они получают новое состояние, если сами сделали какое-то действие, связанное с переходом на другую страницу.
    Так работают старые веб почтовики и форумы 2000-х годов.
    2. Средние требования к скорости оповещения - "пользователь не должен предпринимать никаких действий, чтобы он получил новое состояние, но получать состояние можно раз в несколько минут и более".
    Один пользователь набирает сообщение, отправляет на сервер. А другие пользователи запрашивают новое состояние страницы у сервера по технологии ajax. Проблема в том, что инициатором получения изменений от первого пользователя являются клиентская часть приложения пользователей, которые ждут изменений на сервере, а не приложение сервера. Поэтому когда первый пользователь отправит сообщение, то другие пользователи получат его не сразу, а когда наступит следующий период опроса сервера.
    Это требование подходит для интернет магазинов, чтобы отслеживать статус заказа, новые почтовики.
    3. Высокие требования к скорости оповещения - "пользователь должен незамедлительно получать изменения от сервера, как только другой пользователь сделает действие".
    Вот тут уже на стороне ожидающих пользователей работает технология websocket. Клиентская часть этих пользователей создает соединение с сервером и ждет от него отклика, когда другой пользователь напишет сообщение. Постоянные опросы состояния, как в случае 2 таким пользователям проводить не нужно.
    Но для websocket есть ограничения, что не каждый веб сервер для него годится. Например, с PHP его сложнее подружить, чем с NodeJS. Вся проблема в том, что PHP не приспособлен для обработки множества запросов на одно соединение, в NodeJS и других средах, где такая концепция заложена изначально, проблем не будет с реализацией.
    С такими требованиями работают современные чаты в любых мессенджерах.
    Ответ написан
    Комментировать
  • Как установить кодировку при выгрузке данных в CSV?

    @alexalexes
    Судя по преобладающим артефактам Р и С в некорректных символах, у вас строки в utf-8 открываются в кодировке windows-1251.
    Попробуйте либо правильно указать заголовок:
    "Content-type" => "text/csv;charset=utf-8",
    либо перекодировать строковые атрибуты из utf-8 в windows-1251:
    fputcsv($file, array(
                                    $item->id,
                                    mb_convert_encoding($item->name, 'cp1251', 'utf-8'),
                                    mb_convert_encoding($item->surname, 'cp1251', 'utf-8'),
                                    mb_convert_encoding($item->middle_name, 'cp1251', 'utf-8'),
                                    $item->phone,
                                    $item->date,
                                    $item->time,
                                    $item->type
                                ));
    Ответ написан
    Комментировать