Задать вопрос
  • Как сформировать запрос SQL в случае отсутствия значения в таблице базы данных?

    Stalker_RED
    @Stalker_RED
    запрос к бд получается уже некорректным
    что в нем некорректного? Вы запросили данные, их в бд нет, вернулся пустой ответ. Так и должно быть.

    И возможно ваши страдания решаются запросом типа insert ... on duplicate key update ...
    https://dev.mysql.com/doc/refman/8.0/en/insert-on-...
    Ответ написан
    Комментировать
  • Файл конфига php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Очень хороший вопрос, только вы путаете файл с настройками и файл первоначальной настройки приложения.
    Вам нужны оба.
    1. файл c настройками
    Их должно быть два.
    Первый файл называется config.sample.php, он содержит только один массив, который заполняется пустыми/дефолтными значениями и может содержать не только настройки БД но и содержать другие секции:
    <?php
    return [
      'db' => [
        'hostname' => '',
        'username' => '',
        'password' => '',
        'database' => '',
      ],
    ];

    Этот файл добавляется в репозиторий.

    Второй файл называется config.php и он создается руками каждый раз при установке CMS на новом сервере. В него пишутся актуальные настройки для каждого сервера.
    Этот файл не добавляется в репозиторий (а добавляется, соответственно, в .gitignore).

    2. Файл первоначальной настройки приложения.
    В него идут команды, которые пишутся на любой странице: подключение к БД, старт сессии, всякие инклюды и прочее. Кроме того, в этом файле должен быть код
    if (!file_exists('config.php'))
     {
         $msg = 'Создайте файл config.php на основе config.sample.php и внесите в него настройки';
         throw new RuntimeException($msg);
     }


    Таким образом система будет помогать программисту, если он забыл создать config.php с актуальными для конкретного сервера настройками.

    И вот этот файл, назовем его init.php, уже и подключаем во все остальные файлы.

    Кстати, начиная с 8 версии РНР можно писать просто
    $conn = mysqli_connect(...$config['db']);
    В этом случае ключи массива $config['db'] будут использоваться в качестве имен параметров функции - очень удобно
    Ответ написан
    Комментировать
  • Можете посоветовать книги или курсы по python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Примерно нахожусь между начинающим и средним

    Вот темы которые я знаю на достаточном уровне:
    - Основы python (циклы, условные операторы, переменные, функции, строки, списки)
    - Вложенные списки (матрицы)
    - Кортежи
    - Множества
    - Словари
    - Некоторые модули

    Это даже не джун, о каком среднем Вы говорите?

    Можете посоветовать книги или курсы по python?

    1. Гуглите "учебник python" и решаете все от А до Я.
    2. Гуглите следующий учебник, который восполнит пробелы п1.
    3. Ищите себе пет-проект и пытаетесь его реализовать (повторить несколько раз). Т.к. Python сильно разносторонне-развитый язык, то и проекты должны быть в портфолио такие, которые от Вас может ожидать работодатель/заказчик.
    4. Ищите людей, которые сделают ревью п.3.
    5. Заливаете достойные проекты на гит.
    6. Идете на собесы, попутно устраняя пробелы в знаниях и пет-проектах, которые услышите на собесах.
    Ответ написан
  • Как сформировать AJAX запрос для базы данных?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для начала надо научиться делать без всякого аякса и яваскрипта. А освоить базовые приемы работы с РНР.
    Сейчас же у вас дурацкий вопрос вида "как мне затонировать стекла в машине?" при том что сама машина - это помесь телеги с влосипедом, причем педали крутятся в обратную сторону.

    Сначала надо добавить одну запись в БД руками.
    Потом так же в БД учиться писать запрос SELECT
    потом учиться выполнять SQL запросы в РНР.
    потом учиться получать результат SQL запроса в массив.
    потом учиться выводить многомерный массив
    потом учиться выводить многомерный массив в виде требуемого HTML, чтобы получить свою таблицу
    после этого можно сесть и отдохнуть.

    И после хорошего отдыха начать учиться работать с формами в HTML
    и как их обрабатывать в РНР
    написав в итоге код для добавления данных формы в БД

    и только после этого, если силы останутся, навешивать рюшечки в виде запроса и обновления аяксом
    Ответ написан
  • Как лучше организовать структуру сайта по продаже плитки?

    Sanes
    @Sanes
    Коллекция это характеристика товара. По ней можно сделать фильтр. Или как дополнительная категория.
    Ответ написан
    Комментировать
  • Как сделать вывод из бд в столбик?

    Потому что html игнорирует переносы строк в определённых ситуациях. (если интересно - читай спецификацию)
    Так что тебе нужно переносы строк заменить на <br>
    Для этого даже есть готовая функция в php (раз ты используешь php) nl2br(...)
    Либо ты можешь сделать аналогичное через css:
    https://stackoverflow.com/questions/2703601/how-to...

    PS: "enter" - это не символ. Это кнопка на клавиатуре. Очень хорошо было бы, если бы ты посмотрел, какой именно символ (или последовательность символов) там образовалась
    Ответ написан
    Комментировать
  • Как разложить URL path на части?

    Stalker_RED
    @Stalker_RED
    $str = 'aaa/bbb/ccc/ddd';
    $separator = '/';
    $parts = explode($separator, $str); // <-- магия здесь
    var_export($parts);

    https://www.php.net/manual/en/function.explode.php
    Ответ написан
    1 комментарий
  • Какой самый быстрый способ передачи информации между двумя ПК?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вытащить винт из виндового компа и ставить в линуксовый, примонтировать и скопировать с максимально возможной скоростью.
    Ответ написан
    Комментировать
  • Ошибка 500 php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если это локальный сервер то добавить строчку
    php_ini("display_errors", "on");
    Если боевой, то смотреть ошибку в логах
    Ответ написан
    Комментировать
  • Как настроить версию php в зависимости от урла?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Очень странная задача.
    Но решить можно, проще всего через Docker: один контейнер с одной версией php (например, php:7.4-fpm), второй — со второй (php:8.2-fpm), указав одну и ту же директорию с файлами. Nginx — в третий контейнер и в конфигурации для него пишем два блока location { ... }: в одном fastcgi_pass php74:9200;, во втором — fastcgi_pass php82:9200;.
    Ответ написан
    Комментировать
  • Куда положить dump.sql для автоподнятия БД с нужного дампа Docker?

    @Senture Автор вопроса
    Разобрался.

    Вот мой код:
    version: "2.15.1"
    
    services:
      postgres:
        image: postgres:13.3
        environment:
          POSTGRES_DB: "username"
          POSTGRES_USER: "username"
          POSTGRES_PASSWORD: "username"
          PGDATA: "/var/lib/postgresql/data/pgdata"
        volumes:
          - ./Initer:/docker-entrypoint-initdb.d
          - usr-data:/var/lib/postgresql/data
        ports:
          - "5437:5432"
    
    volumes:
      usr-data:


    В этом случае, нужно создать директорию Initer в корне (где лежит docker-compose.yml) и в нее положить необходимый dump.sql и все работает.

    Важно!: Если папку не создать, она появится автоматически после docker-compose up. Но будет естественно пустой, и даже если сделать down, в папку положить дамп, и поднять приложение (docker-compose up) бэкап уже не накатится, т.к. БД уже была проинициализирована ранее и никакие изменения к ней применяться не будут.

    Прошу прощения за такие глупые вопросы :D
    Ответ написан
    6 комментариев
  • Как сделать автозаполнение поля mysql?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Триггер не нужно постоянно вызывать, это и есть автоматизация.
    Но никакой триггер здесь не нужен.

    Всё что тут понаписано - это какие-то завиральные идеи от неграмотности.
    И их надо просто выкинуть из головы.
    поле product_id не имеет смысла, его надо убрать из таблицы
    в name ничего подставлять не надо.
    Ответ написан
    8 комментариев
  • Где ошибка в строке запроса к PosgreSQL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    В запросе, использующем более одной таблицы, все имена полей должны указываться как минимум с алиасом таблицы.

    Ну и, спрашивая про запрос, следует показывать не код на питоне, а именно текст запроса.
    Ответ написан
    Комментировать
  • Как получить несколько случайных значений одним запросом?

    tsklab
    @tsklab Автор вопроса, куратор тега SQL Server
    Здесь отвечаю на вопросы.
    SELECT NEWID() FROM GENERATE_SERIES(1, 10)
    В MS SQL 2022 добавили GENERATE_SERIES.
    Ответ написан
    Комментировать
  • Как проверить бекап postgres что он не битый?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Проверить бекап - путь только один, это восстановиться с него и посмотреть всё ли на месте. То самое известное, что все администраторы по наличию бекапов делятся на 3 типа: кто не делает бекапы, делает бекапы и тех, кто проверяет восстановление из бекапа.

    прервался ли pg_dump в какой-то момент - смотреть можно, как обычно, по коду возврата, а так же по stderr.

    PS: довольно тревожная мысль не сохранять права доступа
    Ответ написан
    5 комментариев
  • Как реализовать вместо рандома очередь, 1, 2, 3, 4 и т.д.?

    New_Horizons
    @New_Horizons
    Бред:
    где-то нужно хранить текущее "обновление". Проще всего в сессии. И с каждым обновлением страницы делать инкремент. И когда там будет 10 выводить "Да". Ну это сама идея.
    Ответ написан
    Комментировать
  • Как импортировать данные из csv в Postgres?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    create temp table import_data (...);
    copy import_data from '/path/to/file' (format csv, ...);
    insert into tablename (...) select .. from import_data where not exists (select from tablename where tablename.phone = import_data.phone) on conflict do nothing;
    Ответ написан
    Комментировать
  • Нужно ли хорошо разбираться в алгоритмах джуну?

    @alekcena
    Нелинейный наставник
    Ну, я когда начинал не изучал алгоритмы.
    На работу это не влияло.

    Для меня в самом начале были важнее навыки:
    1) Декомпозиция задачи на мелкие, мелкие задачи оказывается решить не так уж и трудно.
    Правильно описанная задача это половина решения.
    2) Правильно гуглить как решить мелкую задачу.
    3) Просто изучать смежные темы.
    На одном знание языка, далеко не уедешь, алгоритмы конечно круто.
    В большинстве случаев, алгоритмы приходят сами.
    Как говориться "Учитель приходит тогда, когда ученик готов.

    Когда я чуть подкачался. Для меня важным навыком оказалось
    1) Читать документацию, как не странно, в ней можно найти 99% проблем.
    2) Понимать конструкции языка программирования, бегло его читая.
    3) Не использовать крутые конструкции, если они усложняют чтение.
    Да, этим грешат все, кто познал много крутых штук.
    Но по факту они кроме как усложнение, ничего не делают.
    4) Понимание, что ты работаешь не один, следует из пункта 3.
    Код нужно писать что-бы его можно было прочесть.

    А уже потом, ты изучаешь алгоритмы, и понимаешь, что ты и так их используешь.
    Тк как что есть алгоритмы? Все есть алгоритмы.
    Ответ написан
    4 комментария
  • Как можно применить и закрепить на практике полученную теорию?

    Привет. Только практика. Или ты придумываешь задачи себе сам, что на самом деле сложно, или просишь у кого-то, чтоб дали реальный кейс, который можно выполнить или находишь сам на просторах сети... Или решаешь чьи-то проблемы(а-ля фриланс). Можно напроситься на практику в какое-нибудь предприятие, где есть циски, микроты, доменная сеть и в целом инфраструктура. Но там уже вопрос в том, как специалист по информационной безопасности отреагирует и какая вообще политика компании.
    Ответ написан
    Комментировать
  • Как правильно экранировать поля, содержащие разметку?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если текст содержит HTML теги, которые должны выводиться как есть, то его не надо обрабатывать функцией, которая преобразует теги в HTML сущности.

    Если же вопрос про обработку данных перед их записью в БД, то надо задать себе вопрос, какое отношение функция htmlspecialchars имеет к базе данных.

    Логика - это просто незаменимый инструмент для программиста.
    Ответ написан
    5 комментариев