Итак, кому интересно, я решил это так:
у юзера в таблице сразу прописаны права доступа ( в данном случае сайт или сайты).
этот ключ при логине помещается в переменную сессии, затем из бд вытаскиваются записи LIKE :site, где :site - тот самый ключ.
Доступ к другим сайтам запрещен через проверку во время извлечения -
isset($_POST['hidden']) && $permissions == 'root' && $_POST['hidden'] == 1. Пост нужен чтобы скрывать заказы в архив или прятать их с глаз. Без проверки на доступ постом можно было извлечь все спрятанные и не спрятанные записи.
Зелим Бельтоев советовал сделать во время записей проверку, я ее сделал чуть проще.
Отказавшись от метода выбора сайта постом у всех, кроме рута, я сразу решил и проблему доступа юзера1 к записям юзера2. Поэтому по его схеме сделана просто проверка при обновлении страницы. Ну вдруг что.
Всем спасибо.