Oleg
Хм....
Bilbo Baggins
синьоры
простая задача, ввела в заблуждение
Кто шарит в mysql - подскажите плиз.
user_id | user_info
1 | mail@mail.ru
1 | +79991234567
2 | test@test.ru
2 | +71236669988
Есть запрос на удаление
delete form table where user_info='mail@mail.ru'
Как удалить все контакты этого юзера?
InnoDB. Внешний ключ каскадный на одну и ту же таблицу не получается сделать.
Разносить в разные таблицы тоже не вариант
Bilbo Baggins
в два запроса (или вложенным селектом) с получением user_id не предлагать.
Pathologic
а чем тебе два запроса плохо?
Dmytro
Volodymyr
Volodymyr
тебе нужно хитро сделать подзапрос и получить ид юзера по мейлу
Bilbo Baggins
ну зачем, когда можно эту работу отдать mysql (если возможно)?
Bilbo Baggins
Pathologic
как это user_id может быть NULL
Dmytro
Чем проще и понятней код тем лучше + это редкие операции которые не дают нагрузку
Dmytro
Bilbo Baggins
Pathologic
не может
Pathologic
ну или база неправильно сделана
Dmytro
Ок как получить контакты 2 разных людей у которых нет юзерайди
Bilbo Baggins
не может
я утрирую для понимания, на самом деле все сложнее.
Например:
есть таблица юзеров и т.д.
Есть форма обратной связи
Все запросы из ФОС попадают в эту таблицу. При записи ищем id юзера, но этот запрос может быть и не от юзера.
Dmytro
Pathologic
в этой таблице должен быть еще столбец id формы
Bilbo Baggins
Pathologic
удаление контактов происходить должно по идее при удалении пользователя
Bilbo Baggins
Pathologic
тогда нужна еще одна таблица пользователь - email
Pathologic
тогда сможешь настроить ключи
Pathologic
и все будет само удаляться
Bilbo Baggins
ок, дополню:
Есть ФОС.
Все обращения обрабатываются менеджером каким-нибудь.
Когда обращение обработано - удаляется из этой таблицы.
В списке пользователей нужно видеть, что от этого юзера есть необработанное сообщение.
Изменять (дополнять) таблицу пользователей нельзя (она на другом сервере и т.д.)
Bilbo Baggins
т.е. в списке пользователей лезу в табличку table и смотрю есть ли там запись с одним из контактов юзера.
Если есть - подсвечиваю.
Игорь
Добрый день, я уже писал на гитхабе по-поводу .htaccess (https://github.com/evolution-cms/evolution/issues/1868), в общем на Апаче 2.4 конструкция:
———————-
order deny,allow
deny from all
———————-
уже не работает, а правильно будет на Апаче 2.4:
———————-
Require all granted
———————-
Получается сейчас при обновлении, затирается и phpthumb и снова отвалились все картинки и кэш)
Bilbo Baggins
при обработке обращения, удаляю из table всё по юзеру
И в списке юзеров он уже не будет подсвечен
Bilbo Baggins
короче в два запроса и без вариантов?
Pathologic
или два запроса или еще одна таблица с email
Pathologic
лучше два запроса ((:
Bilbo Baggins
ok, спасибо
Pathologic
но с двумя запросами дело такое, что если у тебя id=null то ты удалишь все такие записи
Bilbo Baggins
Bilbo Baggins
если null - то удалять только запрошенную строку
Pathologic
тогда запись с телефоном не удалится ((:
Dmytro
тогда система придумана гавняже и ее надо переделывать
Dmytro
либо автоматом регить пользователя, тобы у него был айди
Dmytro
либо вместо айди ставить timestamp
Bilbo Baggins
эта система - учёт входящих обращений (звонки, смс, почта и т.д.)
Звонки могут быть не от клиентов.
Dmytro
либо вместо айди ставить timestamp
либо рендерить кастомный айди, но без айди - никуда. Если позвонит 1 не клиент, а потом второй неклиент - в базе будут 2(или 4) записи без айди - они вообще никак не связаны, просто записи - кароче это какаха. Переделывать надо в любом случае
Serguei
Хотя, я бы просто подзапрос добавил.
Oleg
Снова про логику пакетов/неймспейсов/контроллеров.
1. сделал новый пакет, пусть TestPkg - значит это неймспейс TestPkg.
2. добавил туда файл BaseController.php в котором поменял namespace.
3. сделал шаблон testpage и для него вьюху testpage.blade.php
4. сделал контроллер TestpageController.php который наследует BaseController.php
Кажется всё верно, но что бы я не писал в noCacheRender в TestpageController.php — ничего не падает во вьюху.
Andrey
Может кто-нибудь помочь с вопросом вёрстки? Абсолютно не силён в ней, поэтому столкнулся с проблемой с чужим сайтом.
Удаляю любой блок, котоырй упоминается в JS - всё, ломается вся вёрстка (типа, не найден какой-то id и скрипт перестаёт работать, а за ним едет вёрстка вся)
Andrey
ковырять тысячи строк js ради малейших правок - так себе затея. Нельзя как-то обойти этот момент?
Andrey
удаляю всмысле html код, а не js
Дмитрий
Null
https://github.com/evolution-cms/evolution/releases/tag/3.1.1
Азамат
Всем привет. Подскажите плиз. Есть ли возможность сортировать в doclister по тв полю ( типа 13.12.20 12:23:50) как нибудь в prepare перед самой сортировкой преобразовывая в unix формат?
EVO bot Лёшка
Михаил
Азамат
Сортировок несколько, передаю get параметрами
Азамат
То есть если я укажу параметр datetime в tvsorttype DL сам разберёт формат даты?
Andrey
'addWhereList' => 'STR_TO_DATE(`dltv_DATE_1`.`value`, \'%d-%m-%Y %H:%i:%s\') > NOW()',
типа такой херни вроде
Andrey
Но где валяется — хз. Так что примерно.
Andrey
dltv_DATE_1 - вот эту магию искать в дебаге Доклистера.
Азамат
Дата в tv у меня записана строкой
Andrey
Тем более STR_TO_DATE
Азамат
Пробую в prepare с помощью STR_TO_DATE преобразовать в unix но что то не выходит. Должно ж по идее сработать?
Азамат
Или какое другое событие есть перед выборкой для преобразований?
Andrey
Я думаю, что проще было бы обернуть Доклистер в свой сниппет, выбрав айди ресурсов из таблицы ТВ. И сунуть их как $params[documents], вызвав уже потом $modx->runSnippet('DocLister', $params);
Азамат
Типа prepareBofore ?
Азамат
Азамат
Мне нужно их сортировать щас из фронта, но вот с датой пока не разберусь
Andrey
Так дата в каком виде лежит в поле?
Anonymous
Anonymous
вопрос. а еФильтр поедет на 3.0?
Азамат
Азамат
21-12-20 12:23:30
Азамат
Типа нужно преобразовать в unix до сортировки как то
Andrey
UNIXTIME(поле, '%Y-%m-%d')
Andrey
SELECT *
FROM posts
WHERE parent_id = 20
AND STR_TO_DATE(date, '%d-%m-%Y') >= CURRENT_DATE()
ORDER BY STR_TO_DATE(date, '%d-%m-%Y') ASC
Где дата записана в базе как dd-mm-yyyy
Азамат
А, типа сначала достать id документов запросом уже в нужном порядке а потом их в доклистер вставить?
Andrey
Я ж выше написал)
Andrey
В таблице твшек фильтруем нужные значения, добываем contentid — считай, получили доки.