Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: модерация
 
 автор: franko   (08.02.2015 в 10:05)   письмо автору
 
 

здравствуйте.
когда клиент вносит изменения на своей странице, то в базе появляется еще одна строка с изменениями и где approved='0'. Старая запись имеет approved='1'
Следующий код, удаляет ту строку, которую выберет модератор.
Все работает.
Но я не давно объединил 2 таблицы (вузы и ссузы) в одну. В общей таблицы есть поле id, котрое может иметь одинаковые значения, так для ссуза, так и для вуза.
PRIMARY ключ - newid
Одно отличие, вузам я присвоил idvuzorccuz=1, ссузам idvuzorccuz=2.
И теперь, когда я выхожу на модерацию скрипт выводит три строки. Например старую запись вуза, новую запись вуза, и запись ссуза, с таким же id как и вуз.
И если я подверждаю любую запись вуза, то ссуз удаляется.

Я пытался решить и добавлять
 AND id_vuzorccuz='$id_vuzorccuz'

в запрос, но безуспешно.
Как исправить?

if (isset($_REQUEST['approve']) && isset($_REQUEST['ts']) && isset($_REQUEST['idd'])) {
// do approve it
   $idc = mysql_real_escape_string($_REQUEST['idd']);
   $tsc = mysql_real_escape_string($_REQUEST['ts']);
   mysql_query("UPDATE school SET approved='1', updated=CURRENT_TIMESTAMP() WHERE id='". $idc ."' AND updated='". $tsc ."'", $db);
   if (mysql_affected_rows()) {
   mysql_query("DELETE FROM school WHERE id='". $idc ."' AND approved='1' ORDER BY updated LIMIT 1", $db);
   mysql_query("DELETE FROM school WHERE id='". $idc ."' AND approved='0'", $db);
   }
   
   header('Location: /moderator/moderator.php');
   exit();
}

if (isset($_REQUEST['dismiss']) && isset($_REQUEST['idd'])) {
// do not approve it
   $idc = mysql_real_escape_string($_REQUEST['idd']);
   mysql_query("DELETE FROM school WHERE id='". $idc ."' AND approved='0'", $db);
   
   header('Location: /moderator/moderator.php');
   exit();
}

  Ответить  
 
 автор: Trianon   (08.02.2015 в 10:40)   письмо автору
 
   для: franko   (08.02.2015 в 10:05)
 

>Но я не давно объединил 2 таблицы (вузы и ссузы) в одну.

Это все вы проделали в пределах одной таблицы?
То есть у вас в одной таблице и старые и новые записи?
Почему? Вас кто-то ограничил в правах на создание новых таблиц?

  Ответить  
 
 автор: franko   (08.02.2015 в 19:08)   письмо автору
 
   для: Trianon   (08.02.2015 в 10:40)
 

у меня раньше была таблица ссузов с id_ccuz
и таблица вузов с id_vuz..

я объединил эти две таблицы в одну с id, но создал поле id_vuzorccuz.. для вузов id_vuzorccuz= 1, для ссузов id_vuzorccuz=2.

и соотвественно, id ссузов и вузов одинаковые.
и теперь если я модерирую к примеру вуз, то на модерацию помимо двух записей вуза (запись старая, и запись с изменениями) появляется еще одна запись ссуза, которая имеет такой же id как и этого вуза.
как сделать, что скрипт игнорировал ссуз.
надо добавить условие в верхний код.
id_vuzorccuz= '$id_vuzorccuz='

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования