• Как взять последние 5 строк у которых category равен 1 в Mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В SQL понятия "первые" и "последние" строки появляются только после того, как вы явно зададите порядок сортировки. Для того, чтобы последние стали первыми достаточно этот порядок поменять (ASC/DESC). Ну а взять первые пять строк - это вообще не проблема.
    Ответ написан
    Комментировать
  • Почему выводится 12?

    vabka
    @vabka
    Токсичный шарпист
    1. var доступен за пределами цикла
    2. цикл завершает своё выполнение, когда условие b<12 перестаёт выполняться
    Думаю дальше не сложно сложить 2+2
    Ответ написан
    Комментировать
  • Почему выводится 12?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    Ну так правильно цикл-то не останавливается заранее магическим образом.
    Когда b перестаёт подходить под условие, тогда и цикл заканчивается.
    Ответ написан
    Комментировать
  • Почему выводится 12?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что цикл хоть и пустой, но будет крутиться пока выполняется условие. А оно перестаёт выполняться когда b = 12.
    Ответ написан
    2 комментария
  • Как передать в файл-шаблон, только одну переменную?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Попробуйте создать свой шаблонизатор считывая файл шаблона через file_get_contents() или подключите сторонний шаблонизатор типа Smarty или Twig. Они будут видеть только те переменные, которые вы передадите т.к. содержимое шаблона не будет интерпретироваться PHP.
    Ответ написан
    Комментировать
  • Сможете ли Вы с нуля написать свой MVC движок?

    slashinin
    @slashinin
    Задачи для PHP https://justcoding.ru
    Всё зависит от ваших целей. Для чего вам изучать MVC, создание движков и PHP в целом?

    Сейчас почти никто не пишет с нуля свои движки, а используют фреймворки либо готовые CMS системы.
    Если вы понимаете в теории как работает движок то думаю этого достаточно, лучше использовать это время для изучения фреймворка Yii2 / Laravel / Symfony на выбор.
    Ответ написан
    Комментировать
  • Как в компоненте вывести загруженные данные?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    // store
    export const state = () => ({
    	functions: []
    });
    
    export const actions = {
      async loadFunction({ commit }) {
        try {
          const plans = await Parse.Cloud.run('getFunction', {}, {});
          commit('setFunction', plans);
        } catch (error) {
          commit('setFunction', null);
          return null;
        }
      },
    };
    
    export const mutations = {
    	setFunction: (state, payload) => {
    		state.functions = payload;
    	}
    }


    // Ваш копонент, где вы отображаете TItem
    <template>
    	<div>
    		<TItem
              v-for="(item, index) in functions"
              :key="index"
              :tplan="item"
              @delete="deleteItem(index)"
            />
    	</div>
    </template>
    
    <script>
    import { mapState } from 'vuex'
    
    export default {
    	//....
    	computed: {
    		...mapState([
    			'functions'
    		])
    	}
    	//...
    }
    </script>
    Ответ написан
    Комментировать
  • Как в компоненте вывести загруженные данные?

    Судя по всему это писали не Вы и вырвано это из контекста, а точнее vuex store.

    Помимо actions должны быть state, mutations.

    Эта функция в таком виде работать не будет.

    Если она получает данные, то создается мутация setFunction, которая меняет state. Далее желательно создать геттер (условный getData), который будет возвращать вам данные.

    А в компоненте создаете вычисляемое свойство с подходящим названием и с помощью геттера получаете данные.

    И вот это свойство указываете в цикле.
    Все просто

    П.с. пока писал - Дмитрий все как раз изобразиь)
    Ответ написан
    Комментировать
  • Как заменить разделитель внутри строки на PHP?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Мои 5 копеек:
    $newStr = '.n' . str_replace(',', ',.n', $str);
    
    echo $newStr . PHP_EOL;


    Live PHP
    Ответ написан
    Комментировать
  • Как заменить разделитель внутри строки на PHP?

    0xD34F
    @0xD34F
    $newStr = preg_replace('~(?<=^|,)~', '.n', $str);
    
    // или
    
    $newStr = preg_replace('~\d+~', '.n$0', $str);
    
    // или
    
    $newStr = implode(',', array_map(fn($n) => ".n$n", explode(',', $str)));
    Ответ написан
    Комментировать
  • Почему не переходится на другие табы bootstrap?

    UnluckySerivelha
    @UnluckySerivelha
    Нужно подключить js от бутстрапа.
    Ответ написан
    2 комментария
  • Почему не добавляются русские символы в базе данных mysql?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Какая кодировка у базы данных? Какая кодировка у таблицы users? Какая кодировка у поля name таблицы users.
    Надо же задавать нужную кодировку при создании БД, при создании таблиц в БД...
    И эта кодировка должна быть хотя бы utf8. А лучше - utf8mb4.

    Сейчас же, похоже, используется кодировка latin1.
    Ответ написан
    4 комментария
  • Почему в переменную $string_c не запоминаются данные при повторном воде?

    @66demon666
    По навыкам джун - по факту безработный
    Очевидно, скрипт отрабатывает и умирает вместе с переменной. Вам надо сохранять ее значение, например,в $_SESSION
    Ответ написан
    6 комментариев
  • Как составить регулярное выражение на php?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Примерно так:
    preg_match("/(photo|video|wall)-([\d]+_[\d]+)/i", $string, $matches);


    Здесь можно проверить код PHP
    Ответ написан
    Комментировать
  • Почему не получается записать в базу данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    База данных всегда сама подробно расскажет, почему у неё не получилось выполнить запрос. Надо её только об этом попросить.

    Поэтому сначала учимся правильно соединяться.
    Весь этот детский лепет "не могу соединиться с БД" выкидываем и пишем нормальный код, который сам, без всяких проверок, сообщит нам об ошибках.
    В случае mysqli это
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect($host, $user, $pass, $db_name);
    $link->set_charset("utf8mb4");

    Здесь первая строчка отвечает как раз за информирование об ошибках

    Кроме того надо не забыть про ошибки РНР
    Во-первых, всегда в коде должно быть error_reporting(E_ALL);
    Плюс на домашнем компе ini_set('display_errors',1);, а на боевом - ini_set('display_errors',0);ini_set('log_errors',1);, и смотреть, соответственно, в логах.

    После этого переписываем запрос. Причем так, чтобы данные в БД всегда попадали отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $title, $discription, $date, $path);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    И тогда никаких ошибок запроса уже никогда не будет. Не говоря уже о том что при любых других вариантах твой сайт поломает любой пятиклассник

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute

    Подключение
    $host = '127.0.0.1';
    $db   = 'test';
    $user = 'root';
    $pass = '';
    $port = "3306";
    $charset = 'utf8mb4';
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dsn = "mysql:host=$host;dbname=$db;charset=$charset;port=$port";
    $pdo = new \PDO($dsn, $user, $pass, $options);

    Здесь за информирование об ошибках отвечает параметр PDO::ERRMODE_EXCEPTION, а остальные просто для удобства/корректности.

    Выполнение запроса
    $sql = "INSERT INTO `events` (`title`, `discription`, `date`, `img`) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$title, $discription, $date, $path]);
    Ответ написан
    2 комментария
  • Зачем Python Django девелоперу нужно знать SQL?

    vabka
    @vabka
    Токсичный шарпист
    1. Чтобы писать эффективные запросы, которые будут нормально ложиться на индексы и быстро выполняться
    2. Чтобы избегать глупых ошибок, когда пишется запрос, который принципиально невозможно превратить в SQL
    3. Чтобы избегать подводных камней с ORM, таких как N+1 и (хз как называется - когда ORM выгружает все данные из базы, а потом обрабатывает их на стороне приложения)
    4. Чтобы не порождать дыры в безопасности.
    5. Чтобы писать запросы без ORM - иногда быстрее зайти в datagrip и ввести запрос там, чем писать одноразовый скрипт.

    ORM, имхо, нужна только для ускорения написания запросов и абстрагирования от синтаксиса конкретной СУБД, но не для замены SQL
    Ответ написан
    Комментировать
  • С помощью какого фреймворка сделать красивый дизайн?

    vabka
    @vabka
    Токсичный шарпист
    Со стороны стилей это сложным не выглядит, кмк - делал подобное без CSS-фреймворков.

    Но судя по интерфейсу - тут много интерактивных динамичных элементов, так что я бы последовал совету Много Чего и сразу взял какой-нибудь js фреймворк для создания SPA.
    Например react, angular, или vue
    Ответ написан
    Комментировать
  • Как на PHP создать свой сервер, чтобы получать данные с Andriod приложения?

    @rPman
    index.php
    <?php
    file_put_contents('mydatabase.serialized',serialized($_POST).nl,FILE_APPEND);
    ?>

    вот тебе готовый сервер из одного файла, ничего не проверяет, просто сохраняет все что к нему приходит

    Все дальнейшие правки делайте в нем чтобы контролировать корректность параметров данных, сохранять для удобного использования, выдавать данные по запросу и прочее прочее

    Использование фреймворков оправдано только если задача, которую они решают совпадает с вашей.
    Ответ написан
    Комментировать