Задать вопрос
Ответы пользователя по тегу MySQL
  • Входит такая ошибка при работа с phpmyadmin а именно с cooki на php Warning: Undefined array key "user"?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых не ошибка, а предупреждение,
    во вторых, как написал Rsa97, кука у юзера изначально не имеет данного ключа, котрый вы задаете ниже данной проверки, соответственно и куку вы, из-за вывода варнинга, уже не установите. Про то что все операции по записи в куки можно провести только до вывода чего-либо в браузер вы видимо не в курсе...
    в третьих для такого рода проверок существует empty(), которая в том числе учитывает наличие переменной как таковой,
    в четвертых - "код связанный с бд" - дырявый кошмар, кроме того что переменные вообще никак не проверяются(?), они еще и пихаются прямо в запрос, вместо использования подготовленных выражений,
    в пятых код приведенный выше - адская каша из кода и разметки, возьмите за правило разделять код и разметку, если не по файлам, то хотя бы код сверху - разметка снизу, на основании уже вычисленных значений.
    Ответ написан
  • База данных MySql, как сделать переменную, с индивидуальным значением для всех аккаунтов?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите, в чем может быть проблема? Спасибо!!!
    Подсказываю: Файлы хранятся в файловой системе. Хранить файлы в бд это палка о двух концах, оба из которых засунуты в ж...
    1) Файловые системы работают с файлами гораздо лучше текстовых хранилищ.
    2) Для отдачи файлов из файлов не нужно выполнять запросы к бд, десериализацию, декодирование из жсон, а затем из базе64, и гнать как ответ от пыха к серверу. Еще и гонять туда-сюда МНОГО данных, бд такое не любит. Просто отдаешь путь к файлу и его сервер напрямую читает.
    3) Проще настраивать кэширование на стороне клиента, когда файл отдается не через скрипт, а "как файл"
    4) Хранение в базе64 - это +30% примерно к весу изображения
    И еще дохрена проблем...

    Единственный более-менее аргумент за хранение в базе картинок - отдавать их по запросу только авторизированным пользователям. И то, тут правильнее хранить путь до них, сами картинки держать опять же в фс, выше документ рута, и отдавать их через readfile();

    В остальном хранить файлы в бд - решение такое же здравое, как хранить деньги в акциях Российских компаний...
    Ответ написан
    3 комментария
  • Как сделать mysql запрос с подменой значений?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    'join' + 'category.name as catalog'
    Ответ написан
    Комментировать
  • Как изменить статус заказа в php?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Типа такого что-то...
    SELECT * 
    FROM bel_master bm
    LEFT JOIN bel_category bc
    ON bc.id = bm.category_id
    WHERE some statement
    ORDER BY some_field
    LIMIT 50
    Ответ написан
    Комментировать
  • Взять рандомную строку с удалением?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    запрос для выборки рандомной строки с удалением.
    Так для выборки или для удаления?
    Во первых - задача какая стоит? По описанию похоже на лютый треш.
    Во вторых - ордер бай ранд - ОЧЕНЬ затратная операция, ее лучше не использовать на более-менее больших таблицах.
    В третьих - WHERE `имя_поля` IN (select `имя_поля`... , но вроде более старые версии мускуля такое не поддерживают.

    Если вы нормально опишете зачем вы удаляете рандомную строку, будет проще понять что надо сделать на самом деле.
    Ответ написан
    9 комментариев
  • Статистика. Как "вытащить" в одну строку данные за 2 даты?

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

    И какова цель всего этого?
    Ответ написан
  • Как реализовать в MySQL топики форума, которые участвуют сразу в нескольких разделах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мне почему-то кажется, что 'поиск Fulltext' должен подойти для такой задачи,
    Вам кажется. Кроме того что фуллтекст вообще не для этого, он еще и работать будет относительно медленно, так как вариативность значений будет низкая. Про "удобство" работы со строкой вместо нормального индекса вообще молчу.

    Нужно, чтобы можно было быстро находить все темы (топики) для одного заданного раздела (искать тему, которая относится сразу к двум и более разделам не нужно).
    м2м, это надежно и быстро, достаточно знать индекс раздела.

    Как такое реализовать максимально просто?
    Совет: Не гонитесь за кажущейся простотой, вы хапнете гораздо больше гемора от неправильной архитектуры, нежели от еще 15 минут, потраченных на создание таблицы справочника, пивот таблицы и написания 2 джоинов в запросе. Важнее сделать правильно, а не проще.
    Ответ написан
    3 комментария
  • Удалять ли ненужные записи в базе данных или оставлять?

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

    2, в смысле оставляйте, как и для любого сайта - ссылочная масса лишней не будет.

    Если второе, то как правильно это сделать, учитывая , что база будет постоянно расти, а индекс на enum 'delete', 'active' вряд ли поможет ?
    Каким образом оно вообще будет как-то влиять на выборку? Оно же все равно у вас в селекте присутствует, в чем разница? Прямой запрос конкретного объявления этот индекс не использует, а селект списка все равно его использует, разницы независимо от того сколько у вас там записей не будет.
    Ответ написан
  • Как оптимизировать запрос?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего нет индекса на fi.plugin_id. Более точно можно посмотреть в explain запроса.
    Ответ написан
    Комментировать
  • Запрос MySql. Как составить выборку из первой таблицы по нескольким параметрам из второй?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    SELECT  
    FT.ID,
    FT.fruit, 
    PT.ID_P, 
    PT.ID_fruit, 
    PT.ID_Param, 
    FT.ID as FT_ID, 
    FT.fruit as FT_fruit, 
    PT.ID_P as PT_ID_P,
    PT.ID_fruit as PT_ID_fruit, 
    PT.ID_Param as PT_ID_Param 
    
    FROM Frut_table FT 
    LEFT JOIN Param_Table PT 
    ON FT.ID=PT.ID_fruit 
    WHERE PT.ID_Param=10 
    OR PT.ID_Param=20
    какие лишние данные вы получаете?
    Ответ написан
  • Сколько времени должен занимать такой запрос MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    имхо:
    1) Поиграться в отсечку: ставите лимит 10, постепенно потом увеличивая его. Если на каком-то значении идет резкий рост времени - проблема настроек, крутить буфера, память и вот это все. Если рост линейный или близкий к таковому - проблема скорее всего с железом/софтом в целом.
    2) Попробовать выключить репликацию, вполне возможно что затык на уровне софта реплики.
    3) Перенести базу на локальную машину, посмотреть как ведет себя запрос на другой машине. Будет хотя бы понятно примерный разброс времени.
    Ответ написан
    Комментировать
  • Проблема connection timeout mysql php при полностью доступном сервере?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ошибку и номер указывайте.
    https://confluence.atlassian.com/stashkb/connectio...
    так попробуйте
    Ответ написан
  • Как в Sql получить связь один ко многим, где многие будут сразу массивом?

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

    Хинт: Я бы не стал заморачиваться с жсоном или аггрегацией вообще в запросе, думаю парсинг массива на бэке имхо будет гораздо быстрее запроса, что в принципе не сложно проверить, если есть готовая база.
    Ответ написан
    Комментировать
  • Как сделать запрос по регулярке?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как сделать вывод последнего сообщения между двумя юзерами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сообщение - это три значения: id, from_id (отправитель), to_id (получатель), msg (сообщение).
    Точно три??? А то я плохо считаю на пальцах... А еще неплохо было бы дату сообщения как то хранить, и собсно по ней сортировать...

    Мы получим дупликаты. Как поступить?
    Дубликаты чего?

    Как поступить?
    Зависит от того что вам нужно, в приведенных запросах вы получаете всю выборку, так как лимит на количество записей у вас не обозначен. Последний запрос с ограничением в одну запись я думаю подойдет, но я бы все же рекомендовал добавить дату (чисто по логике- хотелось бы знать кто и что когда кому отправлял) и уже по дате делал ордер.
    Ответ написан
    Комментировать
  • Как правильно связывать таблицы в данном случае?

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

    Запрос выглядит так : ... бред поскипан...
    Запрос должен быть с джоином, со связью через первичный ключ таблицы car_colors_info и соответственно car_color_id.

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Ответ написан
    Комментировать