Задать вопрос
Ответы пользователя по тегу PHP
  • Не работает роутинг на PHP, почему?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    include_once('../functions.php');
    не используйте для инклудов относительные пути. Ничего сложного в добавлении полного пути нет, по этому не надо придумывать себе проблемы на ровном месте, просто указывайте абсолютный путь от корня, например используя $_SERVER["DOCUMENT_ROOT"].

    то же самое относится к $dir = 'img/';
    Ответ написан
    Комментировать
  • Почему в БД добавляются пустые данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Чтобы не писать много (а про данный вариант решения можно МНОГО написать), перечислю интересные темы, которые будут полезны автору, можно прям выделять и гуглить:

    1) Подготовленные выражения
    2) Валидация данных в запросах PHP
    3) Модели в MVC PHP
    4) Реализация PHP паттерна dependency injection container (ну или хотя бы Registry)
    Ответ написан
    Комментировать
  • Есть способ с помощью Mysqli одним махом засунуть JSON в базу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что-то вроде этого?
    function mysqli_json_insert($mysqli, $tablename, $json){
      $arr =  json_decode($json, true);
      $fields = '`' . implode('`, `', array_keys($arr)) . '`' ;
      $values = implode(',', array_fill(0, count($arr)));
      $stmt = $mysqli->prepare("insert into `$tablename` ($fields) values ($values)");
      $types = str_repeat('s', count($arr));
      $stmt->bind_param($types, ...$arr);
      $stmt->execute();
    }
    Писал с руки, так что могут быть очепятки...
    Ответ написан
    2 комментария
  • Почему не сохраняется массив?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Изменить значение внутри форич можно 2 способами: по ссылке (foreach ($result as &$article)...) или через индекс (
    foreach ($result as $key=>$article){...$result[$key] = $article;}
    ). В вашем коде оба условия отсутствуют, вы просто меняете временную переменную, никуда ее не записывая.
    Ответ написан
    Комментировать
  • Почему не отправляется форма?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    во первых <input value="<?=$val['id']?>" ...
    Во вторых submit() так не работает.
    Ответ написан
    Комментировать
  • Как перевести весь текст в коде страницы с русского на английский?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я бы делал примерно так:
    Написал скрипт рекурсивно обходящий все пхп файлы в нужной папке, в тексте искал по регулярке [\p{Cyrillic}+\s,-\.\?;]+ русские фразы, выносил бы их в бд, и заменял автоинкрементным айдишником из таблицы, что то типа:
    - echo "Василий схватился за мышь с остервенением и отвагой";
    + echo Helper::translate(55);

    После чего, другим скриптом прошелся по таблице, и в поле перевода на англицкий уже надергал курлом переводы из яндекс или гугл транслейта.
    Останется написать хелпер, который из бд вытащит список переводов и по айди выдаст нужную языковую версию.

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ИМХО не надо насиловать мозг когда задача решена "не изящно, но практично". Приведенное решение вполне аккуратное и рабочее, из мелких косяков - не учтено что окончания меняются через десяток, что легко поправляется делением с остатком на 10 (%). Будет желание повозиться с более красивым решением - на досуге поколупаете, полезное упражнение...
    Ответ написан
  • Как сделать транслит домена на латинице в кириллицу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В пхп транслитерация производится только в сторону латиницы, во всяком случае нативными средствами. Обратно можно только самописными массивами соответствий и заменой через strtr(). Веселуха начнется со звукосочетаниями на подобие ht, ght и тому подобными...

    Реально это?
    Геморно, но реально. В некоторых случаях получится фигня. В некоторых просто кривовато-шепелявая поделка, но в целом, как и в случае транслита с русского на латиницу, более-менее похоже.

    "remont-mebeli.ru/doma-na-dache-v-kvartire" -> "ремонт мебели ру дома на даче в квартире"
    естественно тире, точки и прочие слэши надо менять на пробел.
    Ответ написан
  • Откуда кавычка в начале названия страницы WP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего криво закрытый тег. Внимательно просмотрите код разметки.
    Ответ написан
    Комментировать
  • Логирование mysql запросов с ошибками?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Берем еррорлог, поиск-"SQL" и смотрим глазками...
    Ответ написан
    Комментировать
  • Как исключить некоторые теги из регулярки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Xpath?
    Ответ написан
    Комментировать
  • Есть ли другой вариант делать генерацию списков на php через js?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    или есть другой способ, более простой?
    Конечно есть
    <input type="time">
    Ответ написан
    Комментировать
  • Как равномерно распределить данные на две таблицы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так как суть и смысл задачи автор вопроса не пояснил, будем исходить из фразы я вообще максимально новичек в создании сайтов, ну и объяснять очевидные вещи на пальцах...

    Самым очевидным решением будет не делать 2 таблицы, и вообще не использовать таблицы. 4 дива подряд (ну или 2 если рассматривать второй рисунок) замечательно решают задачу без дополнительных танцев с бубном. Отступы и бордер создают тот же вид за меньшие деньги.

    Второй, менее удобный и более "странный" вариант - формировать 2 таблицы в цикле. Тут уже идут варианты извращений на любой вкус:
    - Можно сделать 3 цикла - первый проходит по всему массиву, каждый четный элемент записывается в один массив, каждый нечетный в другой. Потом за 2 цикла выводятся таблицы, соответственно из первого и второго массива.
    - Можно за один проход сразу формировать строки с готовым хтмл первой и второй таблицы, а в конце только вывести их.
    Ну и прочие подварианты, не несущие какого-то нового смысла...
    Ответ написан
  • Голая переменная в условии if?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если коротко и прям совсем для несведущих:
    1) все что внутри иф всегда будет приводиться к булевой переменной. Как приводится к булеан тот или иной тип переменных - описано в доке.
    2) В "боевом" коде такие конструкции if($_FILES) существовать не должны, все что попадает внутрь условия должно быть приведено к булеан, чтобы разночтений и вопросов, подобных этому, не возникало. В данном случае, в зависимости от назначения кода, можно было использовать как isset() так и !empty().
    Ответ написан
    2 комментария
  • Как найти кастомный тег html с помощью regex?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Выглядит как задача для xmlreader.
    Ответ написан
    Комментировать
  • Как выводить только text поле?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ремарки:
    $curl = curl_init();
    ...
    $response = curl_exec($curl);
    json_decode($response); // куда попал результат выполнения функции - загадка
    echo mb_convert_encoding($response, 'windows-1251', 'utf-8'); /* так как нифига не сделали, 
    нифига не получили. По стуи здесь просто ответ сервера, полученный из curl. 
    Кроме того, предполагалось же, что это будет объект, ну, судя по строчке ниже. Делать echo объекту, 
    еще и "конвертируя" его в какой-то формат, идея не из лучших.*/
    print $response->{'text'}; /* нерабочий вывод поля text, так как у нас там и не объект, 
    и зачем print, а не echo? Или везде принт, или везде ечо, если разницу вы все равно не знаете.
    Так же не обязательно здесь использовать {'text'}, 
    так как вы уже знаете имя свойства, $response->text достаточно.*/
    curl_close($curl);
    Ответ написан
    Комментировать
  • Почему после сравнения меняется значение переменных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Фокус:
    echo $this->pagesCount . ' * ' . $params['page'];
        if ($this->pagesCount < $params['page'])
        {
           echo 'inside if: ' . $this->pagesCount . ' * ' . $params['page'];
           ...
        }
    echo 'after if: ' . $this->pagesCount . ' * ' . $params['page'];
    Ответ написан
    5 комментариев
  • У меня есть сайт, написанный на html & css, как мне подключить базу данных mysql к нему? И обязательно ли использовать php? Если да, то где его нужно?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    MIYA112412,
    времени просто до нг
    Имхо только фриланс. На понимание базовых вещей и создание рабочего кода уйдет скорее всего гораздо больше времени. А так за условные 20 баксов получите рабочую версию своих хотелок.

    Оптимистичный вариант - если базовые знания на достаточном уровне - возможно успеете под бой курантов.
    Пессимистичный - зря потратите время на кривой малорабочий код, сэкономив 20 баксов.

    1) Подучить php и написать на нем какие-то формы.
    Нужно правильно создать формы, соответственно подучить раздел "формы хтмл", и соответственно обработку гет и пост запросов на сервере. В случае пхп - глобальные переменные гет и пост. Ну и проверки на валидность данных.
    2) Создать бд, с mysql знаком, но видел многие делают на phpmyadmin каком-то.
    Установки и настройка окружения уже займут какое-то время, даже если поставить готовые пакеты типа опенсервера. Да, создать простенькую бд можно в майадмине, но надо понимать хотя бы базовые принципы работы с реляционными бд. В идеале - типы данных и как их верно применять, 3 нормальную форму, индексирование, внешние ключи...
    3) подключить, настроить
    Да, подключить, настроить. Масса туториалов, но все это время, которого у вас, судя по срокам, просто нету.
    Ответ написан
    Комментировать
  • Как исправить ошибку в SQL запросе MariaDB?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Unknown column 'id' in 'field list'
    Подозреваю что гениальный проектировщик бд задал первичному ключу какое-то дурацкое название по типу employee_id или что-то такое... Смотрите в бд какие поля в таблице. Проще всего сделать выборку * полей, и сделать вар_дамп результата.
    Ответ написан
    1 комментарий
  • Как вставить данные в БД из ajax?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    В консоли вижу ошибку 500
    Логи ошибок пхп смотрите, ну или включите вывод ошибок и смотрите что пишет сервер в нетворке. Хотя может он и пишет, но вы не смотрели респонс...

    PS: возможно возврат функции ожидаемого типа Response не совпадает с return 1;? ну и как костыль можно сделать echo 1; exit; вместо ретурна.
    Ответ написан
    Комментировать