как сбросить сессию так же как запись из таблиц - PullRequest
1 голос
/ 05 февраля 2010

Я добавляю детали книги на странице (book_detail.php), Когда я добавляю информацию о книге, я также добавляю предложения и дополнения через iframe (используя lightwindow.js), связанные с этой книгой, и я сохраняю их идентификаторы в массиве из 2 сессий. если кто-то добавляет 2 дополнения и 3 предложения, относящиеся к этим книгам, я сохраняю эти addons_is и offer_id в сеансе и, когда добавляю все подробности, относящиеся к этой книге, одновременно добавляю addons_is и offer_id в базе данных в одной строке. как

book_id|book_name|book_price|book_addons|book_offers|
 1     | php     | 100      |10,11,     | 17,18,19

где 10,11 из table_addon, где сохранены детали этого дополнения и 17,18,19 из таблицы_данных, где сохраняются детали предложения

теперь мой вопрос: если кто-то добавляет 2 предложения и 3 дополнения со своими подробностями и не собирается отправлять эту страницу (значит, он не добавляет подробности этой книги) и возвращается, то как мне удалить эти дополнения и предложения из обоих таблиц. я хочу сбросить массив сессий, а также запись из обеих таблиц, если кто-то снова придет, чтобы добавить новую информацию о книге.

Я не могу сбросить сеанс, когда использование происходит впервые, потому что при добавлении дополнений через iframe, страница обновляется автоматически, поэтому невозможно сбросить сеанс при загрузке страницы

1 Ответ

1 голос
/ 05 февраля 2010

С точки зрения того, как удалить записи базы данных, рассмотрите использование транзакций с MySQL . Идея в том, что вы:

  • Начать транзакцию
  • Выполнить серию операторов DML (INSERT, UPDATE, DELETE ... SELECT также допускается)
  • Подтвердить транзакцию (сделать все изменения постоянными)

В любой момент после запуска транзакции вы можете использовать ROLLBACK, чтобы отменить изменения, которые были сделаны с момента запуска транзакции. Однако, как только вся транзакция зафиксирована (с использованием COMMIT), она становится окончательной.


Что касается удаления данных сеанса в PHP, вы можете просто сбросить их:

unset($_SESSION[varname])

НТН,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...