• Как отдавать 404 ошибку если статей нет?

    @alexalexes
    Ошибка вам намекает, что в функцию mysqli_num_rows вам нужно добавить результат не фетчинга, а то, что получается при использовании mysqli_query, либо доставать результ через mysqli_stmt_get_result.
    Все зависит от того, как подготовили запрос.
    Можно, конечно, использовать:
    if (count($articles)==0)
    Но при неудачном выполнении запроса вы должны обеспечить то, чтобы $articles был пустым массивом.
    PS: "<? <?php" - какие-то странные вкрапления маркеров php-кода внутри скрипта, у вас же в файле скрипта не симбиоз html с php?
  • Как из массива объектов удалить дублирующиеся объекты?

    @alexalexes
    Это самый универсальный и ленивый способ. Зачем сравнивать каждое свойство? Объект может быть сложный, а свойства залегать глубоко. Пусть сериализация представит объект в линейном строковом виде, а md5 - даст отпечаток для сравнения.
  • Как показать определенный текст с базы данных?

    @alexalexes
    Если вы знаете, что такое сессия php и как из нее достать id пользователя, то делаете запрос с входным параметром.
    select login
    from users
    where user_id = :user_id

    Естественно, название поля login, таблицы users, поля user_id могут отличаться в вашем случае.
  • Ошибка 500 при отправки запроса Soap API client?

    @alexalexes
    Помогите найти проблему? почему выдает ошибку 500

    Потому что нужно уметь настраивать вывод ошибок в файл error_log и регулярно им пользоваться, чтобы не привлекать к гаданию на кофейной гуще пользователей этого ресурса.
    Но я все таки сниму пенку с этой гущи:
    Так как load_data это не метод класса, а вполне себе самостоятельная функция.
    Такой финт, как вызов функции до ее описания не пойдет в глобальном пространстве.
    В лог файле, вероятно, вы увидите именно эту ошибку - "а что такое load_data строчка такая-то ?".
  • Как на PHP получить ответ сервера?

    @alexalexes
    На сайте настроен 301 редирект на Главную, если запрашивается несуществующая страница.

    Если вы это правило увидели в файле htaccess, то бесполезно отлавливать 301 скриптами на сервере - скрипт запускается после того, как отработает правило, если точкой перенаправления указан скрипт.
  • Правильно ли написана программа функции?

    @alexalexes
    Чтобы сам себя проверить, наверняка, следует взять генерируемые точки и построить график где-нибудь в word-e или excel.
    Но на этом ресурсе никто не будет заниматься проверкой школьных задачек.
  • Как сделать выборку последовательных дней?

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

    @alexalexes
    поле day - формат Y-m-d

    Если строкой храните дату или дату/время, то стреляете себе в ногу, и поэтому у вас возник такой вопрос.
    с 7-ью днями непрерывно начиная с сегодняшнего дня?

    1. Взять только столбец дат.
    2. Округлить до дней или форматнуть дату до дней в любом виде.
    3. Сделать distinct результата 2.
    4. Взять период записей за 7 дней.
    5. С помощью классического count или оконного count убеться что в дистинктованной выборке 7 записей.
    6. Использовать 1-5 как подзапрос справочник, какие записи брать из основной выборки сравнив записи по дате как в шаге 2.
    6.1. Возможно, понадобиться индексировать дату по дневной части, чтобы ускорить такой запрос.
  • Как заполнить столбец с foreign key?

    @alexalexes
    Удалять - не удалять столбец.
    Зависит от того, каков механизм пополнения справочника.
    Если пользователю дается выбор "выбери из справочника" или "напиши свое", то этот столбец нужен, чтобы узнавать, что у пользователя появились новые наименования и их нужно учитывать.
    Если нет такой свободы выбора, то столбец не нужен, заполнение справочника происходит, когда пользователь сам обратиться к владельцам системы или такие сведения для справочника формируются не по инициативе пользователя.
  • Как заполнить столбец с foreign key?

    @alexalexes
    Приписка "снят с производства" не должна храниться в наименовании справочника.
    Для этого предусматривают атрибут устаревания old = 0 или 1.
    В запросах уже уточняют, что нужен только old = 0, если не нужно выводить устаревшие записи.
    А если требуется выводить устаревшие, то в шаблоне вывода списка при наличии old = 1 добавляют эту приписку.
  • Как составить верный запрос SQL с конструкцией CASE?

    @alexalexes
    Терминал на такой запрос ругается.

    Наверняка, не спроста ругается, наверное, что-то пишет по этому поводу?
    Например, ему может не хватать запятой в этом месте:
    ts, CASE
    А вообще, сложно использовать телепатические возможности, если в вопросе не приводить текст ошибки.
    Почему нужна запятая? Вы с помощью case...end выводите свое дополнительное свойство в выборке после свойства ts, поэтому нужно поставить запятую, чтобы указать следующее свойство.
  • Изучение матан?

    @alexalexes
    Для начала, освоить школьную программу алгебры.
  • Как составить запрос на SQL?

    @alexalexes
    Как в базе отмечается признак завершенности испытания в конкретном году на конкретной станции?
  • Как узнать сколько осталось времени setTimeout js?

    @alexalexes
    Написал на псевдокоде максимально близко к естественному языку, чтобы вы могли понять логику решения.
    if(НЕ существует_ли_свойство('отметка_времени_следующей_выдачи_бонуса', profile[message.author.id])
    ИЛИ profile[message.author.id].отметка_времени_следующей_выдачи_бонуса <= текущее_время_unix

    Это значит, если не существует свойство "отметка_времени_следующей_выдачи_бонуса" в объекте profile[message.author.id] ИЛИ это свойство существует и оно меньше или равно текущему времени, то выдаем бонус.
    // говорим ждать формат_времени(profile[message.author.id].отметка_времени_следующей_выдачи_бонуса - текущая_время_unix)

    Найти разность отметки времени выдачи бонуса и текущего времени, привести эту разность (она будет в секундах или милисекундах) к формату часов, минут и выдать сообщение пользователю.
  • Как узнать сколько осталось времени setTimeout js?

    @alexalexes
    if(НЕ существует_ли_свойство('отметка_времени_следующей_выдачи_бонуса', profile[message.author.id])
    ИЛИ profile[message.author.id].отметка_времени_следующей_выдачи_бонуса <= текущее_время_unix
    )
    {
    // даем_бонус();
    }
    else
    {
    // говорим ждать формат_времени(profile[message.author.id].отметка_времени_следующей_выдачи_бонуса - текущая_время_unix)
    }
    setTimeout(() => {
    profile[message.author.id].отметка_времени_следующей_выдачи_бонуса = текущее_время_unix;
    }, 60 * 60000 * 24 );
  • Как узнать сколько осталось времени setTimeout js?

    @alexalexes
    Перейдите от концепции "есть задержка" / "нет задержки" (daily == 1/0) к концепции установки метки времени прошедшего или будущего события со сравнением ее с текущим временем.
  • Как добавить несколько картинок на одну?

    @alexalexes
    Чтобы наложить одну картинку на другую, в понимании того, чтобы цвета одной картинки подмешивались в другую, нужно как минимум оперировать параметром прозрачности последующих картинок. Функция imagecopy в чистом виде таким функционалом не обладает.
  • Как связать ключ в таблицах?

    @alexalexes
    Ну, тогда берите шашки в руки, создайте таблицы по тем запросам, которые предложил Игорь.
    Наполните их тренировочными данными.
    И сделайте первое задание по SQL:
    Составьте запрос выборки следующих полей:
    Orders.Id, Orders.Date, Orders.Street, Orders.Person_Id, Person.Name, Person.Phone, соединив таблицы эти две таблицы по внешнему ключу. (Соединив - это не переделывание структуры, а это логическое связывание таблиц в тексте запроса выборки)
  • Сжатие изображений PHP?

    @alexalexes
    В принципе, ядро этой библиотеки базируется на одном свитче:
    switch ($image_mime){
                    //if is JPG and siblings
                    case 'image/jpeg':
                    case 'image/pjpeg':
                        //Create a new jpg image
                        $new_image = imagecreatefromjpeg($this->file_url);
                        imagejpeg($new_image, $real_destination.$this->new_name_image, $this->quality);
                        break;
                    //if is PNG and siblings
                    case 'image/png':
                    case 'image/x-png':
                        //Create a new png image
                        $new_image = imagecreatefrompng($this->file_url);
                        imagealphablending($new_image , false);
                        imagesavealpha($new_image , true);
                        imagepng($new_image, $real_destination.$this->new_name_image, $png_compression);
                        break;
                    // if is GIF
                    case 'image/gif':
                        //Create a new gif image
                        $new_image = imagecreatefromgif($this->file_url);
                        imagealphablending($new_image, false);
                        imagesavealpha($new_image, true);
                        imagegif($new_image, $real_destination.$this->new_name_image);
                }

    Добавите пару свойств класса: выходные width и height, угол поворота.
    Добавите этапы обработки https://www.php.net/manual/ru/function.imagecopyre... и https://www.php.net/manual/ru/function.imagerotate.php
    И получите класс, аккурат под ваши требования.
  • Как связать ключ в таблицах?

    @alexalexes
    Подставлять значения не нужно, нужно создать особый указатель в таблице Orders - внешний ключ, того же типа данных, что и первичный ключ Id в таблице person. Скорее всего вы его обзовете Person_id.
    И объявить этот указатель внешним ключом (foreign key), связанный с таблицей Person. Гуглите синтаксис CONSTRAINT ... FOREIGN KEY .... REFERENCES.
    Полезно изучить такие термины:
    Нормальные формы
    Первичный ключ
    Внешний ключ
    На практике полезно научиться приводить таблицы к 3-ей НФ, и видеть что структура базы соответствует ей.