Как я могу обнаружить повторяющийся пост в PHP? - PullRequest
0 голосов
/ 26 августа 2011

У меня есть форма, которая вставляет текст (статьи) в базу данных. Когда пользователь отправляет статью (которая уже была отправлена), он также отправляется в базу данных.

Как я могу обнаружить дублирующую запись (как в stackoverflow)?

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

Любая помощь приветствуется.

Спасибо ...

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Создайте уникальный идентификатор, например, с помощью uniq_id(), поместите его в скрытое поле в HTML-форме, затем сохраните его в базе данных в поле, установленном на UNIQUE.Когда происходит сбой операции INSERT, вы знаете, что POST уже был отправлен ранее.

1 голос
/ 26 августа 2011

Если у вас будет скрытый идентификатор, который вы получаете от db, когда пытаетесь редактировать какой-либо контент, вы можете использовать код, подобный этому:

if (isset($_POST['id']) && trim($_POST['id']) != '') {
    $query = 'UPDATE table_name
                    SET
                      `key` = \'' .$_POST['key']  . '\'
                    WHERE `id` = \'' . $_POST['id'] . '\'', 0;
  } else {
    $query = 'INSERT INTO table_name
                                  SET
                                `key` = \'' . $_POST['key'] . '\'', 0;
  }
...