Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу MySQL
  • База данных для корзины?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Но проблема в том что при обновлении нужно чтоб он был самым последнем в таблице

    Не нужно

    просто обновляй и всё
    Ответ написан
    7 комментариев
  • Почему mysql не записывает данные если есть хоть одно одинаковое данное?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я переписал твой код чтобы он был надёжным и безопасным

    $host     = 'host';
    $database = 'name';
    $user     = 'user';
    $password = 'passw';
    $charset = 'utf8mb4'; // тоже важно!
    
    // обязательно выставляем режим информирования об ошибках
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    // подключаемся к серверу
    $link = mysqli_connect($host, $user, $password, $database);
    // выставляем кодировку
    $link->set_charset($charset);
    
    $login   = 'oleg33';
    $password = '04bf6c984b760ed67e3a9f0b5d9b4cc7';
    $email  = 'gggggf1';
    
    // пишем запрос, заменяя все переменне на знаки вопроса
    // имя таблицы пишем прямо в запросе, делать его переменной нет ни имлейшего смысла
    $sql = "INSERT INTO users (`login` , `password`, `email`) VALUES (?,?,?)");
    // подготавливаем запрос
    $stmt = $link->prepare($sql);
    // привязываем к нему переменные
    // сначала в кавычках пишем столько букв s сколько переменных, а потом сами переменные
    $stmt->bind_param("sss",$login,$password,$email);
    // выполняем запрос
    $stmt->execute();
    Ответ написан
    1 комментарий
  • Почему у php и mysql разное время?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Установить часовой пояс для РНР
    • Глобально - в php.ini: date.timezone = Europe/Moscow
    • Локально - в едином для сайта скрипте настроек: date_default_timezone_set('Europe/Moscow');

    Установить часовой пояс для Mysql
    • Глобально - в my.cnf: default-time-zone='+03:00'
    • Локально - запросом после коннекта: SET @@session.time_zone = '+03:00';
    Ответ написан
    Комментировать
  • PHP + MYSQL Как вывести переменную на другие скрипты?

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

    Читать как работает РНР
    Ответ написан
  • Как записать несколько значений в одном поле MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тебе надо освоить базовые принципы реляционных баз данных
    и освоить такие понятия как "отношение один ко многим" и join

    Поскольку ответ на вопрос "Как записать несколько значений в одном поле MySQL?" звучит так:

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


    после этого делаешь запрос к этой таблице, передавая ид пользователя, и получаешь все его курсы

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Жена отправляет мужа-программиста в магазин:
    — Купи батон хлеба, если будут яйца — возьми десяток.
    Муж возвращается из магазина с десятью батонами.
    — Ты зачем столько хлеба купил?
    — Так ведь яйца были...


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

    Твой звпрос выглядит сейчас так:
    "Возьми в шакфу майку, чтолько чтобы была не красная, или носки".
    Ну почему ты удивляешься что тебе база данных принесла таки красные носки?
    Ответ написан
    1 комментарий
  • Почему insert выполняется более 0.01 секунды?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Заверни все инсерты в транзакцию.

    Чтобы не было разночтений: правильный пример того как заключить INSERTы в транзакцию
    Ответ написан
    4 комментария
  • Как решить проблему с форматом даты в БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Переводить все данные как надо SQL будет долго

    Откуда такие идеи?

    что можно сделать подскажите пожалуйста?

    Перевести дату в нормальный формат.
    Ответ написан
    Комментировать
  • Как обработать sql-запрос с условием php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для этого надо забыть все то чему тебя учили в отстойных видеокурсах, снова сесть за парту и учиться с нуля.
    В частности узнать, что
    - Дата в БД хранится в формате Y-m-d и никаком другом
    - количество строк функция mysqli_query не возвращает
    - открыть для себя индексы, поставить уникальный индекс на поле даты и все делать одним запросом

    $query = "INSERT IGNORE INTO stats (datevar, one, two, three) VALUES (NOW(), 0, 0,0)";
    $result = mysqli_query($link, $query);
    if ($result->affected_rows) {
        echo "Создали строку";
    } else {
        echo "Найдено";
    }
    Ответ написан
    Комментировать
  • Как правильно делать соединение с базой данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ответ написан
    Комментировать
  • Как вывести значения из столбцов Mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Купить себе букварь по SQL
    В ужасе дропнуть этот треш
    Сделать нормальную структуру таблиц:
    - таблицу заказов
    - таблицу товаров
    - таблицу товаров в заказе
    Вывести все нужные значения простым SQL запросом
    Ответ написан
    Комментировать
  • Как правильно вставить переменную в имя таблицы PDO/MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Неужели так трудно вставить заголовок своего вопроса в адресную строку браузера и нажать Ентер?
    Ответ написан
    Комментировать
  • Как хранить дату и время замера в бд mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    По уму надо хранить интервал, дата начала "замера" и дата окончания.
    Но у тебя я так понимаю прибит гвоздями часовой интервал. В этом случае тебе нужно одно поле datetime.
    Ответ написан
    Комментировать
  • Как понять нашёл ли SQL запрос данные в базе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если включить логику, то понять очень просто.

    После выполнения запроса мы получаем данные, которые он вернул.
    И вот эти самые данные и проверить

    $result = $link->query("SELECT * FROM `Exiting Users` where email='Aruba'");
    $user = $result->fetch_assoc();
    echo $user ? "Нашол" : "Нинашол";
    Ответ написан
    Комментировать
  • В чем проблема MySQLi?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Потому что мультизапрос тебе сто лет в обед не нужен.
    Как и большая часть этого бессмысленного кода.

    Вместо всех этих шаманских плясок с пятью бубнами тебе нужно просто соединиться и просто выполнить свои запросы
    <?php
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect("localhost", "tsecret1_Sys", "FB,******0iu", "tsecret1_users");
    mysqli_set_charset($mysqli, $charset);
    
    $link->query("CREATE TABLE `tsecret1_users`.`uid ` ( `PassWord` TEXT NOT NULL ) ENGINE = MyISAM");
    $link->query("INSERT INTO `uid`(`PassWord`) VALUES (`pass2_hash`");


    ПЯТЬ строчек, из них две на выполнение запроса.
    Ответ написан
    Комментировать
  • Как лучше хранить массив id в таблице и делать по ним выборку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Массив в базе данных называется таблица
    Ответ написан
    Комментировать
  • Как сделать поиск как у Хабр QnA?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Начни с простого поиска введённой подстроки

    1. Выделяешь таблицы, по которым будешь искать
    2. Делаешь к ним запросы.
    3. К таблицам тегов и пользователей запрос только к одному полю, запрос к таблице вопросов по нескольким полям.

    $search = '%'.$_GET['q'].'%';
    $sql = "SELECT * FROM questions WHERE body LIKE ? OR title LIKE ?, LIMIT ?,?";
    $stmt->prepare($sql);
    $stmt->bind_param("ss", $search, $search, $limit, $offset);
    $stmt->execute();
    $rows = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
    Ответ написан
    Комментировать
  • Не получается записать данные в бд через драйвер PDO?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну или так.
    Кучерявые аннотации расставишь сам
    class Database
    {
        public $pdo;
    
        public function __construct()
        {
            $options = [
                \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
                \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
                \PDO::ATTR_EMULATE_PREPARES   => false,
            ];
            $config = require_once 'config.php';
            $dsn = 'mysql:host='.$config['host'].';dbname='.$config['db'].';charset='.$config['charset'];
            $this->pdo = new \PDO($dsn, $config['username'], $config['password'], $options);
        }
    
        public function query($sql, $params)
        {
            $sth = $this->pdo->prepare($sql);
            $sth->execute($params);
            return $sth;
        }
    }

    Больше никаких методов в него не добавлять.
    Если вдруг зачешется добавить - спросить меня, я объясню почему это не нужно и как сделать правильно.

    После этого спокойно добавить запись в БД

    $db = new Database();
        $sql = "INSERT INTO `reviews`(`id`, `name`, `descriptions`, `url_image`, `rating`) VALUES(:name, :description, :url_image, :rating)";
        $db->query($sql, $reviewUser);
        echo "Запись успешно создана!";


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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не должно быть поля " котором пишу так black,yellow,green ".
    Должна быть отдельная таблица, в которой id записи и цвет
    тогда поиск делается простым джойном.
    Ответ написан
    4 комментария
  • Как сохранить данные из формы в БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Судя по коду, у тебя здесь три вопроса.
    1. Как вывести форму?
    2. У меня есть форма, как передать ее содержимое на сервер аяксом и получить значения в РНР ?
    3. У меня есть несколько переменных в РНР, как их записать в БД
    Никогда больше так не делай.
    Первые два вопроса не имеют никакого отношения к третьему и засорять свой вопрос ими не надо.

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

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

    <?php
    require 'mysqli.php';
    $query = "INSERT INTO message (name, email, phone, message) VALUES(?,?,?,?)";
    $stmt = $mysqli->prepare($query);
    $stmt->bind_param("ssss", $name, $email, $phone, $message);
    $stmt->execute();
    echo "Запись добавлена!";

    И все у тебя вставляется без проблем.
    Ответ написан