Ответы пользователя по тегу MySQL
  • Как сделать поочередны вывод из MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов масса, самое простое что приходит в голову - запускать скрипт из консоли, там ограничения по времени отсутствуют и можно отправлять сколько влезет.
    Второй вариант может не подходить или не предусмотрен принимающим сервером. Запрос похож на вызов апи, скорее всего в нем есть возможность принимать сразу несколько значений в определенном формате, но это не точно...
    Третий вариант - увеличить максимальное время работы скрипта через ини_сет.
    Ну и еще куча вариантов: мультикурл, раббитМКЮ, отправка по крону...
    Ответ написан
  • Перенос ИНФОРМАЦИИ из Excel в Mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Как бы делал я:
    1)добавить поле с урл в екселевую таблицу
    2) ексель поддерживает формулы типа строка + значение из другого поля + строка, что легко дает нам нормальный урл до картинок.
    3) Экспрот в цсв
    4) импорт в мускуль
    профит
    Ответ написан
    1 комментарий
  • Как ускорить выборку ( freeing items, cleaning up) из InnoDB по primary key?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Какой должен быть Тип строки БД только для чисел?
    Предполагаю что имелось в виду "какой тип данных использовать для ячейки, для хранения чисел в формате 0000000000?". Скорее всего вам придется использовать варчар, так как нули в начале строки при преобразовании в число у вас тупо проигнорируются.

    но туда попадают номера в виде (000)-00-00-000
    Плохо

    Но маску ввода номера на сайте отключить или изменить не могу
    И не надо, это не на форнте решать нужно. Это решается средствами серверного языка, нода, пых, короче ПЕРЕД занесением данных в бд.
    Ответ написан
    5 комментариев
  • Как использовать транзакции на уровне логической части программы?

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

    ЗЫ: И $Users как переменная по пср именуется кэмэлкейсом, то есть с маленькой буквы.
    Ответ написан
  • Как настроить автоинкрементируемый столбец, чтобы при добавлении новых строк не появлялись пропуски?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Ок, представим что вы настроили подобный механизм (хотя очевидно что это сделано не просто так), и теперь у вас есть предположим пользователи с номерами 10 и 11. У каждого из них есть некоторые данные, которые привязаны к этому пользователю по id. Теперь мы удаляем пользователя под номером 10, а потом создаем нового, который займет это место. Теперь владельцем всех данных удаленного пользователя будет новый пользователь, который как бы не должен иметь к ним доступа.

    Это банальный и самый простой пример, больше для понимания... Уникальный идентификатор он на то и уникальный, что более не будет повторяться и гарантирует эту неповторяемость на уровне механизма работы бд.
    Ответ написан
    1 комментарий
  • Почему не работает код в задаче гостевая книга на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    По порядку:
    Браузер выдает следующую ошибку:
    Во первых не браузер, а сервер, а браузер ее только отображает. Во вторых это уведомление и предупреждение, а не ошибка.
    Далее, если ваш $view->assign('persons', $data); работает верно - значит в индексе ДО этого места в дата ничего нет. Что легко проверить с помощью вар_дамп. И если там не пусто - что-то в вашем вью работает криво, или не так как вы предполагаете, читайте документацию к данному методу.
    Ответ написан
    4 комментария
  • Как правильно составить SQL-запрос?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    джоин выданные книжки с книжками и с авторами и сум(авторс.ид) груп бай авторс.ид
    Ответ написан
    Комментировать
  • В чем проблема: Fatal error: Uncaught Error: Call to undefined function mysqli_connect() PHP8?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.php.net/manual/ru/function.get-loaded-...
    https://www.php.net/manual/ru/function.phpinfo.php
    в случае апача - рестарт апача. В случае php fpm - перезапустить пых.
    Ответ написан
    3 комментария
  • Как правильно составить sql запрос?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Зачем такие сложные телодвижения? Не проще при показе поста сразу добавлять ему просмотр?
    2) Нахрена такая... странная денормализованная система, где данные хранятся в 3(!) местах? Есть какой-то особый смысл хранить их в разных местах и содержать полностью неконсистентное состояние в любой момент времени?
    Ответ написан
  • Как правильно составить sql запрос?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Либо такой же мониторинг по HTTP-запросам, чтобы видеть куда чаще обращения идут.
    Ээээ... access.log, не?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Сложил поаккуратнее
    SELECT  
      CASE WHEN LOWER(a.title) LIKE LOWER('%слово%') 
      THEN 5 ELSE 0 END  +  
      CASE WHEN LOWER(a.title) LIKE LOWER('%поиска%') 
      THEN 5 ELSE 0 END  AS relevance,
       a.title AS title, 
       a.metadesc, 
       a.metakey, 
       a.created AS created, 
       a.language, 
       a.catid, 
       CONCAT(a.introtext,a.fulltext) AS text,
       c.title AS section,  
      CASE WHEN CHAR_LENGTH(a.alias) != 0 
               THEN CONCAT_WS(':', a.id, a.alias) 
               ELSE a.id END as slug, 
      CASE WHEN CHAR_LENGTH(c.alias) != 0 
                THEN CONCAT_WS(':', c.id, c.alias) 
                ELSE c.id END as catslug, 
                '2' AS browsernav
      FROM db_content AS a
      INNER JOIN db_categories AS c 
      ON c.id=a.catid
      WHERE ((LOWER(a.title) LIKE LOWER('%слово%') 
      OR LOWER(a.introtext) LIKE LOWER('%слово%') 
      OR LOWER(a.fulltext) LIKE LOWER('%слово%') 
      OR LOWER(a.metakey) LIKE LOWER('%слово%') 
      OR LOWER(a.metadesc) LIKE LOWER('%слово%')) 
      AND (LOWER(a.title) LIKE LOWER('%поиска%') 
      OR LOWER(a.introtext) LIKE LOWER('%поиска%') 
      OR LOWER(a.fulltext) LIKE LOWER('%поиска%') 
      OR LOWER(a.metakey) LIKE LOWER('%поиска%') 
      OR LOWER(a.metadesc) LIKE LOWER('%поиска%'))) 
      AND a.state=1 
      AND c.published = 1 
      AND a.access IN (1,1,2,3,6) 
      AND c.access IN (1,1,2,3,6)
      AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2021-06-08 16:24:40') 
      AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2021-06-08 16:24:40')
      GROUP BY a.id, a.title, a.metadesc, a.metakey, a.created, a.language, a.catid, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id
      ORDER BY  relevance DESC, a.created DESC 
      LIMIT 20


    В такой каше и разобраться то сложно, тем более без таблиц, а что-то советовать - вообще хз...

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

    Ну и гроуп бай по куче полей тоже так себе затея...

    Похоже что что-то пошло не так или на этапе проектирования хранилища, или такова сама по себе жумла...

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    0) Хранить картинки в бд - надо себя очень не любить...
    1) Все просто дырявое как дуршлаг, инъекции на инъекциях...
    2) Размер поля под картинку наверняка коротковат, и вполне возможно даже не блоб. Отсюда и проблема - картинка тупо не вмещается в поле целиком.
    Ответ написан
    Комментировать
  • Как записать дату в таблицу MySql и в чём может быть проблема?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    prepared statements
    prepared statements
    prepared statements
    prepared statements
    Ответ написан
    3 комментария
  • Как исправить ошибку MySQL "Fatal error...?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Когда ты НЕ ЗНАЕШЬ что происходит у тебя в коде, во первых надо понять что и зачем ты пишешь, иначе это обезьянье тыканье в клавиатуру ни к чему не приведет в обозримом будущем. Прогресса не будет.
    Во первых - запросы выделить отдельно в переменные.
    Во вторых - вместо тупого "вставляния" переменных в запрос использовать плейсхолдеры, иначе будете страдать, и за дело. Разве так сложно все нужные параметры записать в массив ключ-значение и передать в запрос???
    В третьих - читать ошибки, понимать синтаксис. В идеале - нормально расписывать запрос в коде. Хотя я рекомендую всегда его писать в принятом построчном формате, это всегда удобно и наглядно:
    $sql = "
    INSERT INTO `cards` 
    (`name`, `title`, `p`, `tel`,`email`, `money`, `subject`) 
    VALUES 
    (:name,  :title,  :p,  :tel,  :email,   :money,  :subject";
    Надеюсь ошибка видна?
    Ответ написан
    Комментировать
  • Как отобразить две строки в одну?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    distinct + concat, правда полей будет только 2
    Ответ написан
    Комментировать
  • Как правильно вытащить из двух таблиц mysql?

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

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

    А админ мог все ключи видеть.
    А админу показывай.

    Такое возможно в php?
    Ну, возможно что возможно... пока все еще не очень понятно что тебе нужно...

    Т.к я начинающий, я ещё не знаю как это реализовать(
    Что "это"?
    Ответ написан