Страница 2 из 3
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 19:35
support
Как видите данные в таблице app_entity_35_values есть.
Сама запись в таблице app_entity_35 есть
А вот когда нужно выполнить это все одним запросом, вложенный запрос не выполняется, хотя запрос корректный:
Код: Выделить всё
select e.id from app_entity_35 e where e.id='268' and ((select count(*) as total from app_entity_35_values cv where cv.items_id=e.id and cv.fields_id='402' and cv.value='17')>0 or e.created_by='17')
Из за этого программа думает что записи нет или доступа нет и идет redirect на "Страница не найдена!"
У вас есть идеи почему так?
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 19:46
tax
Сергей, спасибо!
Круг поиска сузился. Я попробую "по колдовать" над запросом.
Если бы проблема была в одной записи, то может было бы проще её удалить или пересоздать. Но тут проблема по всей сущности. Т.е. или структура сущности построена не правильно или что-то с запросом, что он на чём-то спотыкается.
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 20:36
tax
что заметил...
запрос всей записи (268) показывает
SELECT * FROM `app_entity_35` WHERE `id`='268'
результат
и теперь если изменить в запросе
весь запрос
Код: Выделить всё
select e.id from app_entity_35 e where e.id='268' and ((select count(*) as total from app_entity_35_values cv where cv.items_id=e.id and cv.fields_id='402' and cv.value='17')>0 or e.created_by='9')
то получаем такой результат
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 20:44
tax
и... анализ не изменённого запроса
Note: #1003 /* select#1 */ select '268' AS `id` from `kinoprok_db272`.`app_entity_35` `e` where (('268' = '268') and (((/* select#2 */ select count(0) AS `total` from `kinoprok_db272`.`app_entity_35_values` `cv` where ((`kinoprok_db272`.`cv`.`items_id` = '268') and (`kinoprok_db272`.`cv`.`fields_id` = '402') and (`kinoprok_db272`.`cv`.`value` = '17'))) > 0) or ('9' = '17')))
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 20:51
tax
такой вариант. руками в запросе заменил e.id на '268'
Код: Выделить всё
select e.id from app_entity_35 e where e.id='268' and ((select count(*) as total from app_entity_35_values cv where cv.items_id='268' and cv.fields_id='402' and cv.value='17')>0 or e.created_by='17')
такой запрос тоже работает. результат
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 22:10
tax
Ещё один рабочий вариант запроса
Код: Выделить всё
select e.id from app_entity_35 e where e.id='268' and ((select count(*) as total from app_entity_35_values cv where cv.items_id=e.id and cv.fields_id='402' and cv.value='17')>=0 or e.created_by='17') and e.parent_item_id in (select e.id from app_entity_29 e where e.id>0 )
изменил условие проверки
cv.value='17')>=0
З.Ы. заметил, что проблема проявляется на записях у которых есть
подзадачи
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 22:18
support
Дело в том, что данный запрос корректный:
Код: Выделить всё
select e.id from app_entity_35 e where e.id='268' and ((select count(*) as total from app_entity_35_values cv where cv.items_id=e.id and cv.fields_id='402' and cv.value='17')>0 or e.created_by='17')
и он должен работать. Почему не работает, я не могу сказать.
В запросе мы выбираем все записи, которые либо назначены на пользователя (поле 402) либо пользователь есть создателем записи.
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 22:42
tax
Сергей, если я в этом запросе изменяю знак ">" на знак ">=" то запрос отрабатывает.
Подскажите, в где этот запрос формируется, я попробую изменить и проверить на сайте.
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 22:47
support
И что? Смысл тогда в этом запросе? Вам же нужно отобразить записи которые назначенные на человека. Должно быть именно ">0"
Не нужно подстраивать запрос. Я же говорю, он корректный. Нужно разобраться почему он именно у вас не срабатывает. Я у себя не могу такое повторить.
Если есть знакомые специалисты по mysql, покажите ситуацию, может что подскажут. У меня нет идей.
Re: Глюк (странности) с доступом >1 юзера
Добавлено: 12 июн 2020, 22:50
support
В качестве эксперимента, сделайте бекап базы и разверните базу на другом сервере, например локально. можно просто базу, без приложения, и проверьте в phpmyadmin работают ли там эти запросы.