поэтому у меня есть панель управления администратора, где я редактирую конкретного пользователя и меняю его группу пользователей на «пользователь» или «администратор», у меня также есть окно чата внутри каждого канала людей рядом с его потоком (это живойпотоковый сайт).Проблема в том, что, скажем, пользователь Билл публикует сообщения в окне чата Franks (id 1). Это сохраняется в MySQL Table (chatUsers) как: Имя пользователя: Bill, Тип: user, ChannelID: 1
Теперь допустим, что яназначить пользователя Биллом администратором ... Билл возвращается на канал Фрэнкс, но не имеет никаких полномочий администратора, однако у него есть полномочия администратора для любого другого канала.Почему это так?
Поскольку Билл все еще хранится как: «Имя пользователя: Билл, Тип: пользователь , ChannelID: 1» в канале Фрэнкса.
ИтакЧтобы подвести итог всего этого: При понижении в должности или назначении их в качестве администратора я хотел бы найти все экземпляры имени этого человека в таблице MySQL «chatUsers» и стереть его.
(Примечание: когда яобновить игрока (userGroup), который устанавливает его ранг в таблице «пользователь». Их имя и ранг будут отображаться в «chatUsers» только в том случае, если они публикуются в окне чата.)
Вот форма, которая отправляетсячтобы обновить пользователя:
<option value="admin" <?=($users->userGroup == 'admin') ? 'selected="selected"' : null?>>admin</option>
Передается здесь в form_validation:
$this->form_validation->set_rules('userGroup', 'Usergroup', 'trim|required|strip_tags|xss_clean');
$rows['userGroup'] = $this->input->post('userGroup');
Передается в db_users.php:
$this->hasColumn('userGroup','enum', null, array('values' => array('user','admin'), 'default' => 'user'));
Теперь внутри формыпроверка У меня есть этот блок кода:
$rows['id'] = $id;
$rows['firstName'] = $this->input->post('firstName');
$rows['lastName'] = $this->input->post('lastName');
$rows['email'] = $this->input->post('email');
$rows['paypalEmail'] = $this->input->post('paypalEmail');
$rows['gender'] = $this->input->post('gender');
$rows['userGroup'] = $this->input->post('userGroup');
$rows['status'] = $this->input->post('status');
$rows['allowBroadcasting'] = $this->input->post('allowBroadcasting');
$DBUsers = new DB_Users();
if ($DBUsers->saveIt($rows)) {
if($rows['status'] == 'rejected') {
// Get and update user channels
$userChannels = Doctrine_Query::create()->from('DB_Channels')->where('userId = ?', $id)->fetchArray(array(), Doctrine_Core::HYDRATE_ARRAY);
if(is_array($userChannels) AND count($userChannels) > 0) {
foreach ($userChannels as $userChannel) {
$channelRows['id'] = $userChannel['id'];
$channelRows['suspended'] = 1;
$DBChanneles = new db_Channels();
$DBChanneles->saveIt($channelRows);
}
}
// Get and update user channels
$userVideos = Doctrine_Query::create()->from('DB_Videos')->where('userId = ?', $id)->fetchArray(array(), Doctrine_Core::HYDRATE_ARRAY);
if(is_array($userVideos) AND count($userVideos) > 0) {
foreach ($userVideos as $userVideo) {
$videoRows['id'] = $userVideo['id'];
$videoRows['status'] = 'rejected';
$DBVideos = new db_Videos();
$DBVideos->saveIt($videoRows);
}
}
}
Под
if ($DBUsers->saveIt($rows)) {
Могу ли я добавить что-то вроде:
$chatUsers = Doctrine_Query::create()->from('DB_chatUsers')->where('userId = ?', $id)- >fetchArray(array(), Doctrine_Core::HYDRATE_ARRAY);
if(is_array($chatUsers) AND count($chatUsers) > 0) {
foreach ($chatUsers as $chatUser) {
$chatUserRows['id'] = $chatUser['id'];
$chatUserRows['type'] = ('userGroup');
$DBChatUsers = new db_chatUsers();
$DBChatUsers->saveIt($chatUsersRows);
}
}
?Я не уверен, что это правильно ... Я новичок в PHP