Ответы пользователя по тегу MySQL
  • БД статьей на mysql как превратить заголовки статьей в ссылки html файл?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    У меня как бы все полные статьи как отдельный html файл:
    Жееесть....
    Можно ли их адрес как нибудь седлать вместо id?
    можно, но зачем? Для темы сайта - самое то, по-хакерски законспирированные ссылки...
    Ответ написан
    Комментировать
  • Как сделать чтобы начисления происходили не зависимо от посещения пользователем сайта?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что нужно поменять в скрипте, чтобы бонус выдавался раз в 24 часа,
    не зависимо от того зашел пользователь на сайт или нет.
    Ваще ничего, тупо отсчитывать количество дней от начала вашего "аттракциона невиданной щедрости" и выдавать это количество как монеты. Можно показывать только тогда когда юзер за ними зашел, ну и в тот же момент вносить в бд )
    Ответ написан
    Комментировать
  • MySQL не запускается после неудачного завершения работы. Как восстановить?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Проверьте pid файл, если он есть его надо удалить.
    Ответ написан
    Комментировать
  • В каком виде хранить даты исторических события в БД?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    www.realcoding.net/articles/funktsii-raboty-s-data...

    SYEAR или YEAR Год, записанный словами, а не цифрами; если указано'S' то перед датами до нашей эры ставится '-'.
    BC или AD BC- до нашей эры(до н.э.); AD - нашей эры
    B.C. или A.D. B.C.- до нашей эры(до н.э.); A.D. - нашей эры
    Ответ написан
    Комментировать
  • Оптимизация запросов mysql?

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

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

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

    Во вторых, если таблица предполагает наличие реально большого объема, например > 1М записей, имеет смысл что-либо делать, в ином случае вынос в отдельную архивную таблицу мегапрофита не принесет.

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    select * from (
        (select * from `games`
    where  date > now()
    order by date desc)
    union
    (select * from `games`
    where  date < now()
    order by date )
                  ) a
    limit 0,50
    Ответ написан
    Комментировать
  • Кто виноват сервер не тянет или скрипты надо допиливать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Буду благодарен за любые мысли.

    Мысль - а неплохо бы для кода профилирование с таймингом сделать, можно посмотреть на какой операции обычно происходит затык при нагрузке.
    Ответ написан
    1 комментарий
  • Друзья в чем проблема пм пж?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Проверить кодировку сервера (apache - AddDefaultCharset utf-8)
    2) Проверить кодировку соединения с бд (должна соответствовать utf-8)
    3) при подключении задать set names utf8
    Ответ написан
    6 комментариев
  • Почему сайт выдает 500 ошибку?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Хостер обновил версию пыха?
    Ответ написан
  • Почему SQL-запрос не захватывает строки с NULL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    NULL в мускуле не является нулем, это отдельный тип данных не входящий в сравнительные диапазоны и должен быть проверен отдельно, то есть надо добавить or currency_code IS NULL
    Ответ написан
    3 комментария
  • Как брать только первую цифру ID категории?

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

    Как вариант решения конкретно этой задачи - можно так:

    foreach ($posts as $post) {
        $postsCat[trim(explode(',', $post['category'])[0])][] = $post['alt_name'];
    }
    unset($posts);
    Ответ написан
    Комментировать
  • Как загрузить файл и записать его имя в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $id видимо определен выше вызова функции, но как уже вам указали - область видимости внутри функции - локальная, все что не определено внутри тела функции для нее не существует, исключение - глобальные переменные.
    2) Научитесь пользоваться дебаггером, например xdebug, или хотя бы используйте var_dump().
    3) sql запросы СНАЧАЛА формируете в виде строки, затем передаете в вызов, тогда можно будет их вывести и посмотреть что с ними не так, подозреваю что в варианте который вы "поправили" проблема в отсутствии поля user_id которое скорее всего обязательное. Можно проверить напрямую введя этот запрос в консоль мускуля или через phpmyadmin.
    4) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
    Ответ написан
  • Просмотр dump mysql?

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

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

    Подскажите как можно снизить нагрузку и увеличить скорость запросов при условии оптимизированного кода и запросов.
    При условии оптимизированного кода и запросов нагрузка будет примерно никакой, так как у вас они судя по представленному explain ооочень далеки от "оптимизированных".
    Ответ написан
    Комментировать
  • Как скачать картинку, которая хранится в blob?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . $fileData[0]['file_name']); 
    header('Content-Transfer-Encoding: binary');
    Ответ написан
    1 комментарий
  • Как исправить ошибку: Too many connections в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Нет смысла руками рвать соединение, при завершении скрипта коннект закроется автоматически. В вашем же случае весьма вероятна ситуация что коннект порвали зря и скрипт еще не отработал до конца.
    2) Онлайн порядка 500-1000 чел.Для запаса я бы поднял количество соединений до 1/4 онлайна. Зависит конечно от специфики сайта, но иногда их реально не хватает если сервер с активным взаимодействием с бэкендом.
    3) Для драйвера бд пишется враппер, не по тому что это модно или прям необходимо для работы, а как раз на такие случаи, в логику врапера пишется опциональное логирование запросов и сразу видно "кто где срал", сколько реально запросов бегает и что вообще происходит. Тогда можно что-то решать на уровне много/мало и куда что крутить. В частности, может оказаться что коннект происходит чаще чем вы думаете и вовсе не там где задумывалось...
    Ответ написан
  • В чем ошибка авторизации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить пароли в открытом виде - полный ахтунг.
    2) Как уже указали - скобки в селекте не нужны
    3)
    выпадает ошибка ERROR 1 т.е. ошибка существования логина, хотя он есть
    "а вот тут ты не прав малой"(с), не ошибка существования логина, а пустой результат исполнения запроса. Что вызвано именно кривым запросом.
    Ответ написан
    1 комментарий
  • Как при INSERT задать значение поля на основе PRIMARY KEY?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    START TRANSACTION;
    insert into `table` 
    (`number`) values (0);
    
    update `table` 
    set `number` = CONCAT("10", LAST_INSERT_ID()) 
    where `id` = LAST_INSERT_ID();
    COMMIT;
    Ответ написан
    Комментировать