Ответы пользователя по тегу MySQL
  • В БД съехал ID, как исправить?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ЕМНИП в некоторых версиях pma запрос идет в 2 шага, первый отображает готовый запрос, и после него кнопка "ок" или "выполнить", короче второй шаг дублирует запрос(первый его выполняет). Возможно ваш случай.
    Ответ написан
    1 комментарий
  • Как сделать автоматическое присваивание рейтинга относительно суммы в базе данных?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    К примеру, цена 5555. Это самое большое число. Значит рейтинг 1.
    4555, это число на 2 месте находится. Выдаем 2 место в рейтинге.
    То есть когда появится товар с ценой 5554 ВСЕ товары ниже по рейтингу надо будет перерейтинговать? Зашибись решение. Не поделитесь зачем такой изврат?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    select * from `user` u
    left join  `user_property` up
    on up.user_id != u.id

    как то так...
    Ответ написан
  • Как распарсить JSON в MYSQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    если это надо сделать 1 раз, имхо нет смысла заморачиваться и проще через пых все вбить.
    если чисто интересно потрахаться через мускуль - https://dev.mysql.com/doc/refman/8.0/en/json-attri...
    Ответ написан
    5 комментариев
  • Как соединить 2 запроса в один?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    SELECT u0.username, u1.*
    FROM users_auth AS u1, users_auth AS u2 
    LEFT join users AS u0
    on u0.id = u2.user_id
    WHERE u1.user_agent = u2.user_agent
    AND u1.screen = u2.screen
    AND u1.id != u2.id 
    ORDER BY u2.user_agent,u2.screen;
    Ответ написан
  • Запись в mediumtext hex дает ошибку. Как поступать?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Скорее всего это эмодзи, проблема известная, поменяйте кодировку таблиц, базы и соединения на utf8mb4, все должно заработать, оно все обратно совместимо с utf8.
    Ответ написан
    3 комментария
  • Как правильно сформулировать вопрос mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    SELECT `name` 
    from `products` 
    WHERE 1 
    ORDER BY LENGTH(`name`) 
    DESC 
    LIMIT 1
    Ответ написан
    Комментировать
  • Как создать список в звене таблицы mysql?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А в бд мне нужно просто создать 4 таблицы для каждого вида? Или есть другой способ?
    Описание слишком примитивное. От нюансов зависит. Если свойства не постоянные(или имеется вероятность изменения количества свойств) то будет таблица сущностей с общими свойствами, переменные свойства выносятся в отдельную таблицу, а наличие свойства у конкретного экземпляра в другую таблицу. В итоге джоином 3 таблиц получают кастомный набор свойств у любого экземпляра.
    Если это принципиально разные классы объектов (например товары и публикации - обе сущности имеют заголовок, описание, дату создания... но есть еще куча разных свойств. и это реально разные по логике сущности) то наследуются от базового объекта, и далее каждый имеет свою таблицу и свои классы.
    Ответ написан
    2 комментария
  • Как сделать систему переписки сообщений?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как сделать систему переписки?
    сесть и сделать. Написать код(клиента и сервера), создать бд/таблички, настроить сокеты... Много чего сделать чтоб создать...

    Ну как в ВК, или Telegram.
    Вообще 2 разные системы, первая сайт-соцсеть, вторая приложение.

    Как сделать её быстрой?
    Оптимизировать код, оптимизировать запросы, купить сервер по мощнее, раздать всем быстрый интернет...

    Ваще прям с самого нуля, от добавления в базу данных до выведения на страницу.
    Ваще прям с нуля сначала пишете код добавления в базу, потом вывода на страницу, потом еще кучу всего, потом отладка, дебаг, тестирование, рефакторинг... Короче все как обычно, ничего принципиально отличного от любой другой задачи.

    И как сделать чтобы показывалось прочитано или нет.
    при загрузке сообщения смотреть активно ли окно диалога, если активно - на сервер отослать что сообщение прочитано, если нет - по активации окна отослать что все ранее присланные сообщения прочитаны.

    Редактирование и удаление сообщений.
    Да. В смысле делай. Все так же, код редактирования, код удаления...
    Ответ написан
    5 комментариев
  • Как из бд получить наибольшее значение столбца?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Нужно получить эти значения Топ 10 И чтоб были самые высшие значения 10 штук
    используйте order by и limit в запросе

    И их вывести в переменные
    зависит от кода и используемого драйвера mysql.
    Ответ написан
    Комментировать
  • Как сделать постраничную навигацию после поиска через ajax?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если же данные клиента не полные, то данные сохранять только в заданиях (таблице 2).
    Почему? Чем обусловлена такая хитропопая логика? Вам от клиента по сути нужен уникальный номер, дальше привязывать к нему какие-то данные или нет вообще вопрос вторичный. Данные во вторй таблице(`customer_name`, `customer_phone`, `customer_email`) вообще не нужны, это нарушает 3 нормальную форму.
    Ответ написан
    7 комментариев
  • Как получить товар с несколькими картинками?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Мой вам совет - не гонитесь за крутизной а ля "я выбрал все одним запросом", в данном случае это не лучшее решение, как ни странно. Я не знаю как у вас организованна работа с коллекциями объектов, в моем случае любой объект наследуемый от базового(итем, брэнд, пост, юзер...) имеет поле $haveImages, и при формировании коллекции объект коллекции получает все id выборки в отдельный массив, а массив выбранных и инициализированных данными объектов имеет индексы равные id объекта. После чего проверяется, если у объекта $haveImages = true; вызывается метод appendImages(), который уже делает выборку по картинкам где objectid in( ... ) и по результатам раскидывает их в объект $images(это коллекция картинок) каждому объекту из коллекции итемов (или юзеров или чего другого). В итоге каждый объект имеет в составе коллекцию изображений.
    Ответ написан
    2 комментария
  • Как записать ID пользователя из $_SESSION в таблицу БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых похожий вопрос вы уже задавали и вам на него ответили,
    во вторых перестаньте говнокодить и разберитесь уже один раз со структурами базы данных, типами данных и модификаторами.
    Кроме того, как вам уже писали - используйте встроенные механизмы бобов, а не городите хрень в стиле 90х годов.

    Проверьте типы данных которые у вас в полях и которые у вас в переменных.

    Все еще не понимаю нахуа вам разделять дату и время.

    UPD: если уж пользуетесь кривым подходом - то хоть с умом, проверьте что вы там выполняете...
    $sql = "INSERT INTO tasks (`task`, `date`, `time`, `users_id`) VALUES ('$task', '$date', '$time', $users_id)";
    var_dump($sql);
    R::exec($sql);


    PS: strip_tags нифига не защищает от скуэль инжекций, которые у вас там можно в полный рост...
    Ответ написан
    Комментировать
  • Как создать пагинатор?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    есть две таблицы "countrys"
    в смысле countries? И это, запятые экономить не надо, навряд ли у вас 2 таблицы countries.

    и вторая таблица "citys"
    в смысле cities?

    и countri_id, последний это id страны
    в смысле country_id?

    список нужных городов а как теперь сделать не весь список, а скажем только по 5 городов на страницу не понимаю.
    ЗАПЯТЫЕ!!!

    по 5 городов на страницу
    во первых - не вижу ни кода, ни запроса которым вы пытались это сделать.

    Сделал другую ссылку с полным списком городов и в нем постраничный вывод всё норм, а как теперь в него засунуть еще и выбор страны не понимаю
    ну так а какая разница, тот же селект, просто добавляется условие where country_id = и номер страны.
    Ответ написан
  • Какие есть годные практики для работы с большим количеством записей в таблице (1M+)?

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

    1. Индексы, выборочно для полей, по которым чаще всего осуществляется поиск.
    скорее для групп полей, по которым осуществляется поиск, выборка, объединение и сортировка. Кроме того - explain, slow log.

    2. Объединение нескольких колонок в одну, для однотипных данных. Они будут храниться в формате JSON.
    только если по ним не идет поиск, иначе это нифига не оптимизация, а скорее наоборот.

    В остальном мысли о разделении на грячий/холодный стек верные. Можно задуматься еще о переносе части горячих строчек в какой-то мемори сторэйж типа редиса.
    Ответ написан
    Комментировать