Задать вопрос
  • Обновление полей при переходе назад/вперед?

    @alexalexes
    Валидатор ругается на незаполненость полей или на некорректность заполнения, во время загрузки предыдущей страницы?
  • Какую организовать структуру таблиц, если требуется реализовать идею ведения типов какой-то сущности?

    @alexalexes
    Что-то много сущностей.
    Если структура описывает способ хранения записей регулярных действий, то достаточно таблиц: schedule, schedule_type, schedule_log и schedule_status.

    // таблица расписания заданий
    Каждая запись описывает задание, когда его начинать и с какой периодичностью
    schedule
    (
    # id, // идентификатор задания
    * type_id, // тип регулярности задания
    * device_id, // устройство
    * client_id, // клиент
    * create_date, // дата создания задания
    * begin_date, // дата и время первого действия задания
    o end_date, // дата окончания задания (может отсутствовать и быть не кратна регулярности)
    * active // выполнять ли задание
    )

    // Таблица-справочник типов периодичности
    schedule_type
    (
    # id,
    * name
    )

    // Таблица - логи задач
    Когда происходило очередное выполнение задачи, и куда сложили результат (файл восстановления)
    schedule_log
    (
    # id, //
    * status_id, // статус выполнение действия
    * schedule_id, // по какому периодическому заданию выполнялось это действие
    * begin_date, // дата и время непосредственного начала выполнения действия
    o end_date, // дата и время окончания данного действия, если отсутствует, то действие сейчас выполняется
    * backup_name, // результат выполнения
    o error_info // сообщение об ошибке в случае краха выполнения действия
    )

    // Статус выполнения действия задания (выполняется, завершено успешно, завершено с ошибкой)
    schedule_status
    (
    # id,
    * name
    )

    Как работать с этой структурой?
    Есть запись регулярного задания в schedule.
    Смотрим, активно ли оно по атрибуту active, если активно, то проверяем, что текущее время сейчас в периоде [begin_date, end_date] выполнения этого задания. Если да, то смотрим логи schedule_log, смотрим на атрибут schedule_log.begin_date и выясняем, когда последний раз выполняли задание: день, месяц, год назад. Если интервал больше, чем положено по типу регулярности задания, или его никогда не запускали, то запускаем его.
  • Какую организовать структуру таблиц, если требуется реализовать идею ведения типов какой-то сущности?

    @alexalexes
    Какие атрибуты имеют таблицы schedules_type_per_week, schedules_type_per_month; в чем их отличие?
    Есть подозрение, что на этапе проектирования БД упустили возможность сделать все по науке, и теперь структура БД заставляет писать неординарные решения.
  • Можно ли использовать настранице два цикла перебора массива?

    @alexalexes
    Если это не вывод таблицы с длинющими логами, то разработчик обязан написать лимитирующий запрос с оглядкой на то, что в PHP есть потолок в виде параметров среды set_time_limit и memory_limit.
    От нелимитируемой выборки будет страдать если не объект выборки, так механизм вывода и буферизации.
  • Можно ли использовать настранице два цикла перебора массива?

    @alexalexes
    Включите вывод ошибок, поставив в начале скрипта ini_set('display_errors', 1);
    Проблема может быть любая, если есть ошибки в интерпретации кода, то хорошо бы, чтобы вывод их был включен.
    Второй момент.
    Гораздо удобно разделять этапы на запрос данных и сборки вывода результата по формату и шаблону не прерывая канву php-кода.
    Третий момент не смешивайте процедурный и объектный стиль работы с БД.
    Если создали подключение в виде объекта $db, так и обрабатывайте результат, объектом $query_result_x, созданный в ходе сборки запроса.
    <?php
    // запрос данных
    $query_result_1 = $db->query("SELECT...");
    $data_1 = $query_result_1->fetch_all();
    $query_result_2 = $db->query("SELECT...");
    $data_2 = $query_result_2->fetch_all();
    
    // вывод результата по формату/шаблону
    
    $out = '';
    
    foreach($data_1 as $data)
      $out .= '<p>'.$data['field'].'</p>';
    
      foreach($data_2 as $data)
      $out .= '<p>'.$data['field'].'</p>';
      
    echo $out;
    ?>
  • Как создать правильный SQL-запрос с группировкой и условием?

    @alexalexes
    В group by должны быть добавлены выбираемые поля, которые не входят в аналитические функции max и count, это как минимум:
    group by b.lot_id,
        l.id,
        c.name,
        l.title,
        l.image_path,
        l.start_price

    Добавили что-то в select необернутое в аналитику, и тут же это нужно продублировать в group by. При наборе текста запроса - это работает на уровне рефлексов.
  • Может ли android приложение получить доступ к блокировке экрана?

    @alexalexes
    Забавная будет ситуация, если не учтете контекст часовых поясов.))
    Создаете проблемы с замками на пустом месте.
  • Возможно ли в Safari нарисовать содержимое MediaSource video в canvas?

    @alexalexes
    Примеры не открываются.
    ----
    Открылись через Tor.
  • Как запустить несколько аудио файлов подряд, чтобы они не запускались одновременно?

    @alexalexes
    Убрать case, перебрасывающий на первый трек.
    case '3.mp3': target.setAttribute('src', '1.mp3'); break;
  • Как сохранять timestamp из php в MySQL?

    @alexalexes
    Хранит время правильно:
    SELECT UNIX_TIMESTAMP(expiration_date) FROM you_table

    Если при выборке вы не задали преобразование времени через определенную функцию, то база сделает это преобразование в формат по умолчанию за вас. Это касается именно отображения.
    Формат хранения времени однозначно не будет в человекочитаемом виде, это очень компактная цифра и ее нужно постоянно во что-то преобразовывать, чтобы вывести из недр БД.
  • Как вставить формулу в таблицу?

    @alexalexes
    Еще вопросы: зачем вам div-ы с table-стилями, когда есть теги, которые строят таблицу сразу: table, tr, td ?
  • Как вставить формулу в таблицу?

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

    @alexalexes
    А теперь объясните словами, что хотели сделать с помощью первой формы, а что - второй?
    Потому что первая форма "не знает" куда будет отправлять свое содержимое (нету атрибутов action и method), и в принципе, не может сабмитить.
  • Как получить данные с двух форм?

    @alexalexes
    Это набор принимаемых данных:
    $phone = $_POST['phone'];
    $select = $_POST['selectt'];
    $pozvonit = $_POST['pozvonit'];
    $otziv = $_POST['otziv'];
    $detal = $_POST['detalss'];

    Однако, где html-код самих форм, чем отличается набор полей, и как устроен submit в них?
  • Как изменить содержимое одного столбца для всех строк в одной таблице MySQL?

    @alexalexes
    Тут ничего не надо проверять.
    Но во всех остальных случаях, когда используется update и delete лучше держать ухо востро, даже если есть backup на подстраховке, дописать select легче чем проводить мероприятия по восстановлению.
  • Как изменить содержимое одного столбца для всех строк в одной таблице MySQL?

    @alexalexes
    update и delete - коварные штуки, если не прописывать where и не проверять select-том!
  • Как изменить содержимое одного столбца для всех строк в одной таблице MySQL?

    @alexalexes
    Update без условий. Что может быть проще.
    Откуда берутся такие вопросы?
  • Как сделать Ajax не в head?

    @alexalexes
    Объем работ больше напоминает дипломный проект.
  • Как сделать Ajax не в head?

    @alexalexes
    Что-то у вас с бизнес-логикой все скомкано.
    Серверный скрипт должен как минимум обрабатывать вот эти этапы:
    1) Авторизация пользователя;
    2) Выход из системы;
    Для начальника доступны этапы:
    3а) Просмотр списка отделов;
    4а) Получение списка сотрудников по выбранному отделу;
    5а) Получение задач выбранного сотрудника;
    6а) Создание, изменение, удаление новой задачи (полный CRUD);
    7а) Привязка, отвязка задачи от сотрудника;
    8а) Отображение текущих задач, просроченных, важных и тд на данный момент времени.
    Для сотрудника:
    3б) Получение списка всех задач;
    4б) Чтение, изменение состояния задачи (неполный CRUD).
    5б) Отображение текущих задач, просроченных, важных и тд на данный момент времени.
    На каждый этап будет описана своя ветка кода на стороне сервера, и как минимум по одному запросу, несчитая проверки прав доступа.
    Так что вам нужно все это закодить как самостоятельные задачи. Это минимум.
  • Как массив php запихнуть в Chart.js?

    @alexalexes
    Еще не хватает волшебного слова - AJAX.
    Именно главу с описанием этой технологии пропускают новички, когда задают подобные вопросы, связанные с представлением данных на клиенте (браузер - JS), которые они сформировали на сервере (сервер - PHP).