Перейти к содержимому


Удаление записи


Сообщений в теме: 11

#1 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Март 2012 - 11:42

В вычислениях можно выбрать условие срабатывания "Удаление в таблице". Вопрос в следующем: будет ли срабатывать это вычисление если удалять запись не через кнопку "Удалить", а через вычисление типа "DELETE FROM ..."?

#2 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 07 Март 2012 - 13:42

Нет, прямые запросы к базе, не отслеживаются. Если вы пользуетесь прямыми запросами, и хотите обработку событий, вам необходимо активировать их вручную. Например:
$event = array(...);
popup_event($table, $line, $event);

#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Март 2012 - 13:58

Если не сложно, поясните на конкретном примере.
Например: таблица "Договора" (номер 84), запись ХХХ, событие - удаление записи.
Как в этом случае будет выглядеть этот код? И какие события вообще можно активировать?

#4 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 11 Март 2012 - 10:28

Можно активировать любые события.
$event = array('То что заполнять сдесь смотрим через print_r($event) при срабатывании вычисления');
$table = get_table(84);
$sqlQuery = "SELECT * FROM ".DATA_TABLE."84 WHERE id='XXX'";
$result = sql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
$line = mysql_fetch_assoc($result);
popup_event($table, $line, $event);

#5 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 11 Март 2012 - 10:31

Вышеописанный код только пример, например нельзя переопределять $table и $line в вычислениях.

#6 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 03 Январь 2013 - 21:02

Есть таблица1 и таблица2. Я из вычисления таблицы1 с помощью кода удаляю запись в таблице2. Могу ли я сгенерировать событие на удаление для удаленной записи в таблице2?
   delete_query("таблица2", "id=".intval($row['id']));


#7 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 09 Январь 2013 - 10:47

На текущий момент на удаление событие не будет сформировано. Это недоработка, будет исправлено в будущих ревизиях.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Январь 2013 - 11:18

Можно также попробовать сгенерировать событие самому:

Просмотр сообщенияAnalitic (04 Июль 2012 - 11:20) писал:

Вы можете вызывать события программно, для этого используется функция popup_event, ее описание в файле functions1.php


#9 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 09 Январь 2013 - 12:28

я не совсем понял что должна содержать $line?

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Январь 2013 - 14:08

Удаляемую запись, в данном случае.

#11 UmaCat

    Активный участник

  • Пользователи
  • PipPipPip
  • 122 сообщений

Отправлено 14 Январь 2013 - 11:59

а какой синтаксис на удаление всех записей из таблицы при помощи delete_query
вот так получится?
delete_query("таблица2");

Сообщение отредактировал UmaCat: 14 Январь 2013 - 12:00


#12 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 14 Январь 2013 - 12:04

Физического удаления не будет, а лишь изменения статуса всех записей на удаленные. Чтобы удалить все записи физически :

//Вычисляем количество расхода по данному наименованию
$sqlQuery = "DELETE FROM ".DATA_TABLE."86";
$result = sql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery);
где 86 - номер таблицы.

Сообщение отредактировал wondertalik: 14 Январь 2013 - 12:10






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных