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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    `dialog_id` int(16) NOT NULL, - 16 отображаемых знаков - тут вроде не должно быть так, там может быть максимум (11) при int, и емнип в любом случае размер отводимой памяти будет 4 байта. Если вы планируете хранить более 4 миллиардов записей используйте bigint.
    Ответ написан
    Комментировать
  • Как получить уникальные значения из БД MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Исходя из "подсказок" что-то типа такого:
    $result_table = "SELECT DISTINCT `games`, `refsumma`, `nickname`,`id`
     FROM `dlepisode1` 
    WHERE `approved` IS NULL 
    ORDER BY `refsumma` 
    DESC" ;

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

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

    Можно выбрать так:
    SELECT id, `product`.title, `product`.typeID, `type`.title, 
    type`.typeID  type_typeID, type`.title  type_ttitle
    FROM `product` 
    LEFT JOIN `type` 
    on `product`.typeID=`type`.typeID 
    where `product`.typeID=1

    после чего уже в коде по _ разбить в нужный формат.
    Ответ написан
    Комментировать
  • MySQL или MSSQL для крупного проекта?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Я бы не стал заморачиваться с поиском лучшего решения на пустом месте, если бы лучшая бд существовала, остальные бы умерли в неизвестности. В вашем случае я бы использовал MySQL, как минимум на начальном этапе, и вот почему:
    1) Это бесплатно
    2) Мускуль - хороший добротный середнячек своего класса, то есть он умеет почти все и при этом сильно не проседает по производительности.
    3) На него ОГРОМНОЕ количество доков и юзеркейсов, а так же туториалов и советов по оптимизации в конкретную задачу.
    4) При смене бд(если таковая понадобится) вам, скорее всего, придется только поменять драйвер бд(при условии грамотной архитектуры) и аккуратно перенести дамп базы.
    5) Про MSSQL - до недавнего времени в ней не было нативной поддержки UTF-8, вместо нее была(и есть еще вроде) своя UCS, которая мультибайт, но какой-то свой(как всегда у мс), в свое время в угоду "скорости" ставили сервак с мсскулем, в итоге практически никакого прироста не получили, зато получили гемор с переводом кодировок.
    6) Если проект реально нуждается в разрывном бд на пределе современных возможностей - смотрите в сторону инмемори бд, например тарантул или что-то носкюельное, типа редис и иже с ним.
    Ответ написан
    4 комментария
  • Как найти вхождение в бд?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Like не работает
    в каком смысле не работает? У вас не работает или выключена(как?) возможность использования?
    Ответ написан
    6 комментариев
  • Как правильно составить запрос MYSQL?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так а вопрос то в чем?
    1)Не хватает ресурсов - покупаем мощности сервера,
    2) не хватает данных - запрашиваем чаще,
    3) опять не хватает мощности - см. п. 1.

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    function put_ten() {
      global $link;
      $query = "SELECT `item`.`id`, `item`.`name`, `item`.`cat1`, 
                    `item`.`cat2`, `item`.`cat3`, `item`.`cat4`, 
                    `item`.`price`, `img`.`source`, `param`.`name` pname, `param`.`value` pvalue
              FROM `item` 
              JOIN `img` 
              ON `item`.`id` = `img`.`item_id` 
              JOIN `param` 
              ON `item`.`id` = `param`.`item_id` 
              WHERE `item`.`inserted` = 0 
              LIMIT 1000";
    // дальше 1 циклом нормально пройтись
    }


    UPD: Без индексов было... БЕЗ ИНДЕКСОВ, КАРЛ!!! Как так то?
    Ответ написан
    1 комментарий
  • Как реализовать вывод данных бд с сортировкой?

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

    Как и написали в коментах - ORDER BY `поле_сортировки`

    Но до сортировки должны выводиться всё данные.

    можете просто не указывать метод сортировки, но тогда у вас будет все кучей, никакого внятного порядка вывода не будет. И бтв - сортировка не повлияет на вывод всех/не всех данных, для этого есть другие операторы - LIMIT, WHERE и т.д.

    Если не трудно напишите пример кода)

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer

    $sql_img = $db->super_query("SELECT * FROM imgtop limit 2", true);
    print_r($sql_img);
    exit;
    что показывает?

    Выводит так массив
    Array ( [0] => Array ( [id] => 1 [name] => slider_1.jpg ) [1] => Array ( [id] => 2 [name] => slider_2.jpg ) )


    sandbox.onlinephpfunctions.com/code/9f43dc6039aa53...
    результат:
    <li  style="background-image: url(/img/slider_1.jpg);" class="overlay"></li> <li  style="background-image: url(/img/slider_2.jpg);" class="overlay"></li>

    кто -то пиз... трындит, и скорее всего не интерпретатор )
    Ответ написан
  • Какую выбрать БД?

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

    Плюс - скорость и все плюшки кейвалуе.

    Минус - кейвалуе и все похерится в случае факапа с выключением/перезагрузкой сервера сервера.
    Ответ написан
    Комментировать
  • Вывод картинок с mysql как?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    для начала - учите синтаксис и PSR, который не просто так придуман.
    foreach($sql_img as $q) //здесь должна быть открывающая { 
      $img .= '<li  style="background-image: url({theme}/img/'.$sql_img['name'].');" class="overlay"></li> ';
    // тут у вас цикл закончился и вернулся к новой итерации, это равноценно закрывающей }
    // а так же нахрена вам $q если вы обращаетесь к $sql_img? и нахрена тогда вообще цикл? 
    $tpl->set('{img}', $img); // тут вы получили элемент массива $sql_img['name'] в каждой строчке. соответственно будет одна картинка.
    Ответ написан
  • Какой инструмент PHP наиболее подходит для обеспечения безопасности хранения паролей в БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ответ написан
    Комментировать
  • На каком ресурсе хорошо описана защита работы php c mysql?

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

    wordperss?
    Ответ написан
    Комментировать
  • Как создать структуру диалогов?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    имхо вы серьезно множите сущности на простой задаче. Думаю достаточно 2 таблиц для хранения всего.
    1) собственно месажи
    id | sender_id | reciver_id | chatroom_id | message | datetime | readed
    2) чатрум( поля на выбор)
    и логикой рулить уже что это.
    Если есть сендер и ресивер но нет чатрумид - личный диалог,
    Если нет ресивера и есть чатрум - общий чат,
    Если есть все 3 - общий чат с личным обращением, как раз как в вк.
    UPD: если есть необходимость в уровнях доступа к чатам - тогда естественно понадобится дополнительная таблица с рестрикшн полиси и группами пользователей, но это уже имхо немного выходит за рамки первоначальной задачи.
    Ответ написан
  • Как хранить шаблоны платежек?

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

    Мелкий штрих - order ключевое слово SQL, в целом не страшно, орм его нормально обрабатывает, но я обычно заменяю на sort.
    Ответ написан
  • Хранение аватарок в БД, что скажете?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Оверхед при хранении в базе64 порядка 30%. то есть + 30% к траффику, а учитывая п. 2 - еще больше.
    2) Кеш браузера не работает с базе64 картинками(и замечательно работает с картинками в файлах).
    3) Файлы храните в файлах.
    4) Жметесь на количество файлов и место - граватар.
    Ответ написан
    Комментировать
  • Как извлечь из БД MySQL больше одной строки?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Пособие по преодолению проблем "ничего не работает":
    1) Разбить задачу на шаги(сначала на крупные, потом на более мелкие если необходимо)
    в вашем случае есть 1) запрос, который "должен"(нет) выбирать несколько строк. Идем в консоль или в пхпмайадмин и прописываем там запрос напрямую. Если запрос возвращает 1 запись - идем учить синтаксис SQL.
    2) Если проблема не в запросе - есть вардамп для результата вывода из функции, которая работает с бд, возможно вы используете не то что надо - идем читать про ваш адаптер бд и функции из него.
    3) Получаем объект - как и что происходит тут - загадка, проверяйте что вы скармливаете на входе, смотрите где теряются данные по ходу алгоритма, что получаете на выходе.
    Хинт: var_dump(), print_r();
    Ответ написан
    Комментировать