Задать вопрос
  • Почему в цикле выводит еще одно значение?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Здравствуйте, у меня такая проблема, когда я создаю цикл в php у меня выводится еще одно значение
    Ох уж эти циклы проказники, бывает...

    Допустим у меня в БД есть 2 поле
    2 поле это что? Насколько видно из скринов, в структуре таблицы у вас 5 полей, и 2 записи в таблице. Вы про записи?

    и при выводе на страницу я получаю 4
    Смотрим глазками в разметку, считаем на пальчиках сколько раз мальчик написал test в одной итерации цикла? Загибаем 3 пальчика. Записываем в тетрадку 3 палочки. Далее смотрим что нам вывел цикл? Загибаем пальчики 3 на одной ручке, 3 на другой... Сколько ручек? 2! Пишем в тетрадку - вывелось 2 раза по 3. Вроде пальцы с палочками сошлись...
    Ответ написан
    2 комментария
  • Как вернуть первоначальное значение переменной при повторном выполнении функции?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Если длина заголовка слишком длинная (headlineArray.length > 29), он обрезается и добавляется троеточие (headlineArray = headlineArray.slice(0,28)+'...').
    Делайте через цсс, так не придется издеваться над кодом, и что самое главное, автоматически будет обрезаться лишний текст, не зависимо от количества символов, которые бывают разные по ширине.
    Ответ написан
    Комментировать
  • JSON в базе данных это норма для реляционных баз данных?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    JSON это строка. Формат хранения позволяет хранить много значений разного типа в одной ячейке. Очевидно что активная работа с таким форматом будет не эффективна, так как каждая строка по сути может содержать совершенно различный набор внутри себя, что не есть хорошо для поиска.
    С другой стороны, данные не критичные к поисковым выборкам (то есть по которым не будет производиться сравнение, объединение или сортировка) по сути строки, и на производительность влияют мало. А что нужно конкретно вам - из вопроса не ясно.
    Ответ написан
  • Не работает роутинг на 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)
    Ответ написан
    Комментировать
  • Как вывести произвольные типы записей с разным шаблоном?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Т.е в диве item_small должны выводиться 2 поста

    Самым очевидным решением "в лоб" будет что-то такое:
    ...
    } else {
        ?>
                <div class="item_small">
                    <div id="post-<?php the_ID(); ?>" class="portfolio__item">
                    <?php the_post_thumbnail(); ?>
                    </div>
    
                    <?php $portfolio->the_post(); $i++; ?>
    
                    <div id="post-<?php the_ID(); ?>" class="portfolio__item">
                    <?php the_post_thumbnail(); ?>
                    </div>
                </div>
        <?php
      }
    ...
    Ответ написан
    Комментировать
  • Как работать с файлом SQL объемом 20 ГБ?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Маленькое уточнение к предыдущим ораторам, ответы которых дают целый спектр годных решений.

    Вполне возможно что таблица которая вам нужна (пользователи?) не занимает много места и, на самом деле, является лишь малой частью файла, а остальное ненужные данные. Стоит проверить данный тезис и далее выделить в отдельный файл скрипт загрузки только этой таблицы. Как работать с этим куском уже дело вкуса - искать как в файле или импортировать в бд. ИМХО бд в этом плане удобнее и практичнее.
    Ответ написан
    Комментировать
  • Есть способ с помощью 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 Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    нажимая на кнопку, в адресной строке появляется следующие .../#formReview
    <a href="#formReview" onclick="addReview('{{i.author}}', '{{i.id}}');return false;">Ответить</a>

    Смотрите консоль, скорее всего там ошибка, возможно addReview() объявлена после формы, и биндинг функции не срабатывает.
    Ответ написан
    Комментировать
  • Как суммировать значения всех свойств объекта, не перечисляя каждое?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    total(){ 
      return Object.values(this).reduce((sum, a) => sum + a, 0);
    }
    Ответ написан
    Комментировать
  • Почему не отправляется форма?

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

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

    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, MySql, HTML, JS, CSS} developer
    Какая есть альтернатива АКБ для БПЛА?
    Так все те же двс, на спирте или бензине - не суть. Если же речь конкретно про квадро/мультикоптеры, то альтернативы электротяге практически нет, так как оборотами двс управлять сложнее, а балансировать 4 и более движка нужно очень точно. Как вариант могут быть использованы топливные ячейки для выработки электричества из топлива, но в целом у них есть критический недостаток - мощность практически напрямую зависит от площади, по этому обычно на более-менее приличную мощность нужна тяжелая ячейка.
    Ответ написан
    2 комментария
  • Как сделать транслит домена на латинице в кириллицу?

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

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

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

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

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