Ответы пользователя по тегу MySQL
  • Почему из MySQL базы данных не выводится login?

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

    и в обратном порядке для чтения:
    а) Загрузить класс объекта который вы будете получать (иначе магии не получится)
    б) Десериализовать из сессии и добавить в объект все ссылки на нужные ресурсы, например ссылку на объект бд.
    Ответ написан
    Комментировать
  • Как объединить массивы json в Mysql?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    сделать джоин субъектов и выбирать по вэа субжект.ид=субжектид или квесчн.ид_субжект=субжектид

    А можно подробнее?
    Можно, но разбор такого кода займет много времени,
    1)
    SELECT COUNT(DISTINCT question_text) FROM questions
    Абсолютно бесполезный дистинкт, так как у вас все записи уникальные (в теории), или отличаются вариантами ответов и тогда это разные записи, то есть ОЧЕНЬ ДОРОГАЯ операция у вас там просто прелеплена нашару.
    2) для ВСЕХ операций с бд предпочтительнее использовать int поля нежели текстовые.
    3)
    мне необходимо, чтобы данные соответствовали выбранному варианту (subject_title и subject_name),
    На самом деле нужно чтобы совпадал subjects.id (он потому и уникальный идентификатор!), который и надо передавать для выборки, а не какой-то subject_title или subject_name.
    4) в запрос для этого соответственно нужно добавить джоин субжектс, выбрать нужный subjects.id, который передали по клику, и тогда разделять ничего не придется, в выборке будут только поля, относящиеся к нужному субжекту.
    Ответ написан
  • Как сделать сортировку по возрасту (по убыванию) работников в таблице mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    используйте order by field_name desc/asc
    Ответ написан
    Комментировать
  • Обработка ajax запроса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    нужно при клике на чексбокс ajax-ом получить/фильтровать товар, который выводи этот файл Product.php
    1) Чекбоксы что у вас фильтруют?
    2) В Product.php нет функционала, учитывающего более одного параметра, и то - только категорию.

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

    надо ли обращаться к этому файлу Product.php
    В представленном виде он бесполезен для вашей задачи, нужно писать метод получения списка из произвольных параметров. Потом сформировать из списка хтмл с готовыми блоками и отдать его (сделать echo) обратно. Только в аяксе надо будет заменить dataType: 'html'
    Ответ написан
    3 комментария
  • Как правильно сделать запрос к таблице с под запросом на эту же таблицу с фильтром по полю?

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

    так же смотрите вот такой ответ или гуглите sql nested sets.
    Ответ написан
    Комментировать
  • Как удалить строки другой таблицы запросом SQL?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    два апдейта:

    апдейт `блабла` 
    сет `сорт` = позиция 
    где `ид` = ид_итема
    
    апдейт `блабла` 
    сет `сорт` = `сорт`+1 
    где `сорт` > позиция 
    и `ид_группы` = ид_группы
    Ответ написан
    2 комментария
  • Не заполняется таблица на phpMyAdmin значениями,что пользователь ввел во время регистрации.Ошибок не выдает.Что может быть причиной?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не заполняется таблица на phpMyAdmin значениями,что пользователь ввел во время регистрации.
    чтоооо??? Может "значения не попадают в базу"? При чем тут пхпмайадмин?
    Ошибок не выдает.
    Это не значит что их нет, смотрите логи или включите вывод ошибок.

    - Код оформите соответствующим образом, а не мешаниной букв.
    - Просмотрите логи и напишите какую ошибку выдает
    - кроме того у вас там что-то пишется в сессию, выдает результат или нет?
    - Кроме вопроса неплохо бы дать пояснения что вообще у вас происходит, а то телепаты заняты выявлениями нарушающих режим самоизоляции и не могут помочь...
    Ответ написан
    Комментировать
  • Почему при записи в бд php/mysql текста из textarea строка записывается не до конца?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    А чего вы хотели? Для этого и делают датетайм, то есть налицо ошибка в проектировании структуры данных.
    Единственное решение будет построить запрос разбив время на два интервала, то есть в логике определяете если диапазон прыгает через 0 и бьете на 2 интервала,
    SELECT * 
    FROM tablename 
    WHERE 
    ('01:00:00' BETWEEN '23:00:00' AND '23:59:59') or 
    ('01:00:00' BETWEEN '00:00:00' AND '02:00:00')
    Ответ написан
    Комментировать
  • Как писать данные на каждый день в статистику - дублировать или пропускать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    если вчера была температура 27 градусов, и сегодня 27, может метеорологам не стоит записывать каждый день температуру?
    Естественно писать, если эти параметры относятся к логированию и построению какой-либо статистики, и к DRY это никаким боком не относится.
    Ответ написан
  • Не запускается mySQL в xampp, что делать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Setting file 'C:\xampp\mysql\data\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    проверьте что он не переполнен, поставьте больше...
    Проверьте чем занят порт на который вешается мускуль
    Проверьте если в папке есть пид файл - его надо удалить.
    Ответ написан
  • Рационально ли использовать Redis в данном случае?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Из вопроса делаем вывод что а) данных не много б) они уникальны для пользователя в) запрос простой.
    200 000 * 15 = 3 000 000 000 запросов в день, учтем что подразумевается скорее всего рабочий день, пусть 8 часов, и нагрузка распределена примерно равномерно. 3М/8/60/60 = 104 запроса в секунду, пусть в пике загрузки это будет 300-400 запросов.
    Думаю пока вам хватит даже без масштабирования ресурсов, в дальнейшем при необходимости можно ввести кеширование, правда я не уверен что оно даст большой прирост, так как:
    1) Данные должны быть горячие, то есть кеш на такие данные должен быть короткий, а одинаковые запросы скорее всего сильно разнесены по времени, по этому кеш будет вечно протухшим.
    2) Данные на "узкие" запросы вообще плохо кешируются, так как содержат не массив выборки, а 1 строку, то есть получается много мелких данных вместо 20-30 списков на много строк.
    Ответ написан
    5 комментариев
  • Не записываются данные в таблицу Mysql, как исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    тут только один запрос на вставку, зачем тут 3 запроса?

    В логах сервера ошибок нет.
    Это говорит только о том что логирование не настроено

    if ($aff_id && $parent_aff_id){
            global $wpdb; 
            $table = $wpdb->prefix . 'uap_relations';
            $sql = "INSERT INTO $table VALUES(NULL, %d, %d)";
    var_dump([$aff_id, $parent_aff_id]);
    var_dump($sql); exit(); //тут смотреть и думать
            $q = $wpdb->prepare($sql, [$aff_id, $parent_aff_id]); //здесь вроде массив должен быть
            $wpdb->query($q);
          }

    Во первых посмотреть что в переменных, для этого есть вар_дамп.
    Во вторых, если переменные не пустые, взять запрос, подставить руками значения и выполнить запрос из пхпмайадмин или из оболочки напрямую. Скорее всего какое-то поле является обязательным, но не входит в ваш запрос, либо первое поле (id?) не автоинкремент... В любом случае вы увидите ошибку.
    Ответ написан
    5 комментариев
  • Как отредактировать огромный SQL-файл?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    по доке не пробовали?
    UPD: https://serverfault.com/questions/51982/converting...
    UPD2: емнип, вроде как все индексы и ключи надо убить, после этого сделать конвертацию и создать ключи / индексы, что серьезно ускорит процесс.
    Ответ написан
    Комментировать
  • Как текст с БД вывести в html тег img?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не хочется писать "а я говорил"...
    1) НЕ ХРАНИТЕ В БАЗЕ ПУТИ, храните только имена файлов.
    2) Не путайте (а вы я вижу серьезно запутались) абсолютные пути (они только для работы с файлами на сервере) и относительные пути (для отображения путей относительно сервера). В хтмл ВСЕГДА выносятся относительные пути. И относительный путь должен начинаться с / (корень сайта). У вас он начинается с имени папки. Слеш добавьте короче, а то он считает папку, добавляя эту строку к текущему урл.
    3) Что, кстати возвращает нас к п.1, не надо хранить пути в базе.
    4) Впереди вас ждет много интересного, так как рано или поздно у вас все равно вася пупкин и вася губкин зальют картинку с одним и тем же именем и у обоих будет одна аватарка на двоих, как этого избежать я уже писал.
    Ответ написан
    1 комментарий
  • Как реализовать добавление фотографий пользователей с папки в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    нарабоки класс, осталось мелочи:
    0) проверить что это картинка
    1) проверить что имя картинки уникальное, а то у сотен юзеров будет аватар untitled.jpg последнего загрузившего фото юзера (хинт: лучше не брать то которое дал юзер, а формировать свое гарантировано уникальное, например от логина пользователя)
    2) Указать в запросе условие where, в котором привязать каритнку к конкретному пользователю, а не всем сразу
    Ответ написан
  • Какие значения вставлять в VALUE?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я щас опять банальщину немного прогоню, но на будущее и в помощь:
    1) Не надо использовать global, это плохо, это говорит о том, что вы что-то делаете не так, совсем не так, и скоро ваши проблемы усугубятся многократно. На этом этапе надо включить голову, подумать почему так вышло, и переделать, пока не слишком поздно и код не превратился в добротное гуано.

    2) Пока вы учитесь и не можете "на глаз" прикинуть что и как работает и почему работает так, а не иначе - var_dump() - ваш рулевой, если что то не работает - начиная от точки отказа и назад к источнику по порядку - фигачете вардамп всего что движется. Так во первых вы найдете что не работает гораздо быстрее нежели на форумах или тут, а во вторых будете попутно делать для себя массу открытий, что все работает вовсе не так как вы думали и содержит не то что вы подразумевали.

    Есть более продвинутые инструменты а ля xdebug, как созреете - можете на него переходить, это гораздо эффективнее. Но на первом этапе хватит и вардампа.
    Ответ написан
  • Как исполнить код взятый из базы?

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