Задать вопрос
Ответы пользователя по тегу MySQL
  • Подойдет для простого букинга?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Для ООООЧЕНЬ простого букинга с большой натяжкой.

    Не вижу собсно отелей (или он будет один? Тогда это не букинг, а бронирование в отеле)

    Не вижу типов комнат (возможно это сайт бронирования конкретной квартиры покомнатно?)

    Эмоунт - это деньги? Тогда тип флоат не подходит.

    Что за фючеред_имэйдж? еще и интежер...

    Где опции в номере? Или в комнатах квартиры все удобства на улице и это где то отдельно текстом прописано?

    Короче пока на 2 с плюсом...
    Ответ написан
    6 комментариев
  • Как правильно сделать такой поиск?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Учимся думать:
    $search   = _string($_POST['search_string']);
    $sql = '
    SELECT * 
    FROM `chat` 
    WHERE `user_id` IN (
       SELECT `id` 
       FROM `users` 
       WHERE `login` LIKE "'.$search.'%"
    ) 
    ORDER BY `time` 
    DESC '; // делаем запрос отдельной строкой,
    var_dump($sql);
    //вставив в него переменную убеждаемся что там ерунда
    
    //пишем нормально
    $search   = $_POST['search_string'].'%';
    $sql = '
    SELECT * 
    FROM `chat` 
    WHERE `user_id` IN (
       SELECT `id` 
       FROM `users` 
       WHERE `login` LIKE ?
    ) 
    ORDER BY `time` 
    DESC '; 
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param('s', $search);
    $chat_result = $stmt->execute();
    while ( $row = $chat_result->fetch_assoc() ) {
        echo $row['user_id'].'<hr>';
    }


    ps: и нет смысла делать серч через пост запрос, лучше через гет, так поисковый запрос можно например переслать или скопировать и переиспользовать.
    Ответ написан
  • Почему тормозит код записи в MySQL после разбивки его на функции?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вот к примеру была функция check_category - вообще ничего не записывала:
    $sql = "SELECT category_id,name FROM {$prefixTables}category_description WHERE name='".iconv('UTF-8', 'UTF-8', trim($str['category']))."'";

    $res = $pdo->query($sql);

    while($row = $res->fetch())
    {
    $category_id = $row['category_id'];
    }

    Это вы на каждый параметр делаете проверку таким образом, да? Ну тогда все логично, вместо одного запроса в бд у вас их много, вот и выходит лажа. То что она ничего не записывала не отменяет нагрузку на базу. База вообще самое узкое место практически всегда, по этому в базу нельзя лазить когда вздумается. Сделал 1 раз выборку всех нужных данных и с этим массивом работаешь.
    Ответ написан
  • Не редактируется БД через PHP. Что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $id = $_GET['id'];
    $_id = mysqli_real_escape_string($link, $id);
    Ок, то что мы не умеем в подготовленные выражения вместо бредового "экранирования" пол беды, и даже не страшно что операцию так то можно в 1 строку прописать, но далее
    $name = $_POST['name'];
    $age = $_POST['age'];
    $salary = $_POST['salary'];
    Ну типа, ид мы проверили, на этом наши полномочия все...

    Файл Update.php не выдает никаких ошибок после введения формы, но при этом данные не вносятся.

    Во первых - перестаньте называть файлы в разном регистре, если это не классы!!!
    Во вторых - смотрим доку по mysqli, в частности рекомендуемая процедура подключения:
    <?php
    /* Вы должны включить отчёт об ошибках для mysqli, прежде чем пытаться установить соединение */
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
    /* Установите желаемую кодировку после установления соединения */
    mysqli_set_charset($mysqli, 'utf8mb4');
    printf("Успешно... %s\n", mysqli_get_host_info($mysqli));
    После этого уже можно что-то смотреть, например что вернул print_r ($check);...
    Ответ написан
    2 комментария
  • Как правильно выставлять кодировку в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Искал решение, почти везде писалось одно и тоже - нужно выставить кодировку при создании базы, нужно вставить команды в конфиг mysql и тому подобное. Всё это у меня стоит, но помогло ток одно решение, а именно - выставлять кодировку при подключение к бд.
    Кодировку абсолютно правильно сказано - надо выставлять везде, так как во первых при переносе или изменении конфигурации софта все съедет на дефолтные настройки, которые везде разные. По этому и есть конфиги и настроечные переменные. Единственно кодировку соединения лучше поставить utf8mb4, так как это более современный и обратно совместимый формат.

    UTF-8, выставляю с помощью - header('Content-Type: text/html; charset=UTF-8');
    Это можно спокойно вынести в конфиг php.ini, или добавить более универсальный код, не требующий руками каждый раз заголовки править: ini_set('default_charset', 'utf-8');
    Ответ написан
    Комментировать
  • Теряется соединение с MySql(Python). Что делать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Итак, в предыдущем вопросе я сделал блок try except в надежде, что оно восстановит мне соединение, но только что я обратился к боту и ошибка вернулась.
    Вам в прошлом ответе уже подсказали, что вы не имеете в итоге никакой ссылки на объект подключения, а тупо произвели некоторые действия, ака карго культ. На самом деле вам нужно полностью повторить код подключения в ексепшене, так как cursor у вас все равно остается пустой, а должен содержать ресурс соединения (или объект подключения, не помню как в питоне точно называется).
    Ответ написан
  • Как убрать заглушки в БД?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    flexpc,
    они приходят из TextBox. И я не понимаю как вместо их подставлять значения, они же в переменных хранятся
    MySqlCommand принимает в конструктор строку, соответственно получаете строку конкатенацией переменных и вашего запрса, естественно значения надо вставлять в соответствующие места, где у вас сейчас вбиты заглушки.
    Ответ написан
  • Работа с базой данный MySQl AspNet MVC?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Имеется проект на котором нужно реализовать БД MySQL.
    Че, прям написать MySQL с нуля?
    Unable to connect to any of the specified MySQL hosts.
    Очевидно что нет подключения к бд. Во первых - скорее всего вы ее еще не написали же (шутка?), во вторых - вы проверили что мускуль запущен, через консоль к нему можно подключиться с данными, прописанными в коде подключения, и пользователь от имени которого запускается приложение имеет нужные права?
    Ответ написан
  • Оптимальное хранение данных в БД?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Евгений Карпов,
    ну а если использовать между серверами 10гб/с канал?
    Вопрос не в ширине канала, а в накладных расходах протокола, все таки получать данные с той же машины, используя внутреннюю шину и использовать кабельное соединение между 2 машинами - очень разные вещи, но на самом деле конечно же гигантских задержек не будет, просто нужно учесть что они существуют, ну и что это еще +1 точка отказа.

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

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    У меня сейчас имеется одна таблица для одного поста.
    Точно? Это на сайте будет один пост? Или под каждый пост будет таблица? Или все таки одна таблица для постов? (читать про нормальные формы бд, 1,2 и 3 НФ)

    Но как лучше реализовать комментарии, чтобы была одна таблица, но там хранились комментарии из разных постов?
    Очень просто: Таблица, где будет поле post_id, которое будет указывать на пост, к которому относится комментарий. Если структура иерархическая, то еще parent_id, указывающий на какой комментарий это ответ. (Читать про отношения Один-ко-многим, хотя и про остальные тоже для общего развития. Ну и про иерархические структуры через nested sets)

    понимаете, если будет много комментов, то долго будет обрабатываться. =/
    Понимаете, вы нихрена не разбираетесь в вопросе, но уже уверенно несете чушь про "будет долго обрабатываться", хотя точно этого не знаете (спойлер: не будет долго обрабатываться).
    Ответ написан
    2 комментария
  • Как сделать выборку по трём таблицам?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Просто через LEFT JOIN получается так что продукт дублируется столько раз сколько имеет соответствий с таблицей INFORMATION.

    GROUP BY p.id
    ORDER BY s.rating DESC i.int DESC
    Ответ написан
    2 комментария
  • Ошибка MySQL: ER_PARSE_ERROR, что делать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    const [row] = await dbConnection.query( логин или нет. 
            "SELECT * 
             FROM `users` 
             WHERE `name` = ? 
             AND `password` = ?",
         [username, password] // <- тут ОДИН МАССИВ, RTFM!!!
        );
    Ответ написан
  • Как реализовать "живой" поиск на базе Node и MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если подразумевается что поиск будет производиться прямо во время набора текста в поле ввода, то довольно простая схема:

    На поле набора вешается онкейап листенер,
    по событию содержимое поля отправляется аяксом на сервер,
    там делается выборка нескольких значений, удовлетворяющих поисковой строке,
    обратно присылается этот набор, либо в виде жсон и дальше парсится в хтмл, либо сразу сформированный хтмл,
    данные лепятся как список ниже поисковой строчки, на кнопки вниз/вверх подсвечиваем строки из подсказки (фокус с поля надо убрать),
    по ентеру в поле вносим полную строку из подсказки и субмитим форму поиска, либо по клику тоже самое.

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Сразу видно несколько проблем:
    1) У таблицы нет индекса (2 нф), возможно это пока только представление в экселе, но надо учесть.
    2) Очевидно что таблица имеет тенденцию к расширению по столбцам, что, очевидно, плохо.
    3) п.2 в том числе образуется из-за смешивания сущностей в одной таблице, которые нужно разнести по рзным таблицам и связывать пивот таблицами (3 нф).

    Вообще вам больше и точнее подойдет Нормальная форма Бойса-Кодда, хорошо и просто описанная здесь.
    Ответ написан
    Комментировать
  • Выборка из нескольких таблиц одной структуры MySQL?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) для начала проверить что что-то вообще работает, тупо передать руками созданный объект из 1-2 строк.
    2) Сколько записей в comments? может их там 5 миллионов и он все пытается передать на фронт? Вообще запрос без условий, лимитов и сортировки выглядит весьма странно...
    3) Смотреть консоль, что вернулось, что пишет нетворк - статус, тело ответа.
    Короче стандартная отладка, ничего нового.
    Ответ написан
  • Возможно ли сделать создание блока комментария с этим кодом, используя данные из MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Работа с бд - одна из основных задач бэкендера, объяснять как это работает в вашем конкретном фреймворке нет смысла, есть туториалы и документация под конкретный фреймворк. Скорее всего все делается через модели и встроенный в них механизм чтения и записи в бд. Читайте доку.
    Ответ написан
  • Почему выдает ошибку запрос?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    очевидно что запрос который вы написали в вопросе отличается от того, который у вас реально выполняется, так как в ошибке явно указана другая строка '&quot), курите код, вы явно где-то косячите по символам.
    Ответ написан
    Комментировать