клонируется удаленная строка в phpmyadmin

Sergey
Sergey
853
7
Содержание:
  1. Комментарии
Здравствуйте, Александр.
Пробовал по-разному сформулировать суть своего вопроса в поисковике, но ни единого поста по моему случаю, по крайней мере, то что могло бы помочь!
Создал базу данных в phpmyadmin, в ней разместил таблицу. Через INSERT начал наполнять таблицу. Заметил, что при каждом обновлении страницы — запись дублируется. Почитал — это нормальное поведение INSERT.
Начал удалять лишние (продублированные записи) — некоторые записи начали появляться с другими id. То-есть, количество записей остается неизменным (я так понимаю, выбранные элементы удаляются и тут же появляется такое же количество аналогичных записей, но только со следующими id по порядковому номеру).
Аналогичное поведение, как в майадмине, так и через оператор DELETE в php документе.

Отключил соединение с базой данных в php документе, все закоментировал. Перешел в майадмин, в таблице выбрал все записи и удалить. Все удалилось, а одна запись в 20 экземплярах осталась! Никак не поддается удалению.
Это глюк базы? Или существует конкретная причина? Хочу разобраться с этим вопросом, так как появление подобной проблемы при работе с действующей объемной базой данных может обойтись в месяц, а то и более, трудоемкой и ненужной работы!
СПАСИБО!
Изображения:

Комментарии: 7

  1. Sergey
    Sergey
    2020-04-18 18:09:14
    Александр, не хочу отнимать ваше время на «глупые вопросы». На форуме мне объяснили что к чему, как оказалось, редирект мне не нужен, в моем случае. Попробую реализовать запрос на уникальность для Insert. A редирект уже буду приобщать к форме!
    СПАСИБО вам за помощь!
  1. Sergey
    Sergey
    2020-04-18 14:34:33
    Спасибо, Александр, за эти ценные советы! Вероятно, вы сможете его подкорректировать, понимая задачу кода. Везде, на всех форумах натыкаюсь на информацию о необходимости использовать Post/Redirect/Get после INSERTA (в т.ч. и для формы)(https://ru.wikipedia.org/wiki/Post/Redirect/Get). Это важный инструмент и нужно разобраться с ним. Многократно он будет полезен для меня.
    Суть в том, что мне нужно после отправки запроса, например, POST сообщения (ну когда форму php скрипт будет обрабатывать), вместо вывода результата произвести РЕДИРЕКТ (перенаправление) на эту же страницу. Все советую использовать редирект и предлагают описанный выше код!!! Вероятно, какая-то мелочь и этот код некорректно работает!!!
    Александр, подскажите, пожалуйста, в каком виде этот код заработает? Спасибо.

    PS: ваш совет о PDO я наполовину понял. Код PDO создал, он работает — но при обновлении та же история, что и INSERT.
    1. Sergey
      Sergey
      2020-04-17 19:57:33
      Здравствуйте Александр, надеюсь, получить от Вас «уразумения»!
      Относительно описанной выше ситуации — появились дополнительные сведения.
      На образовательном ресурсе по программированию, я уточнил код, что меня интересовал. И вот, та же проблема с базой данных.
      В БД я увидел на странице 20 дубликатов, удалил — еще появился. Закоментировал я код и обновил браузер, а там 100 дублей. Обратил внимание, что в БД на странице у меня отображается 25 строк! В ЭТОМ КРОЕТСЯ ПРИЧИНА НЕПОНЯТНОГО, С НАЧАЛА, ПОВЕДЕНИЯ БД. Удалил все 100 дублей — корректно все исчезло.
      ВОПРОС, ЧТО НЕ ТАК В ЭТОМ «ЗЛОКОДЕ»?
      $query = "INSERT INTO movie VALUES(null, 'mmm', 'gggggg', '2019', Now())";
      if($mysqli->query($query)) {
           header("Location: " . $_SERVER['REQUEST_URI']);
           exit();
      }
      
      СПАСИБО
      1. Александр Мальцев
        Александр Мальцев
        2020-04-18 03:22:32
        Ошибка в этой строке:
        header("Location: " . $_SERVER['REQUEST_URI']);
        
        Здесь вы перенаправляете на этот же скрипт. В результате этот скрипт будет выполнен очень много раз из-за переадресации на самого себя. Это будет происходит столько раз, пока сервер не остановит это. В вашем случае это 25 раз или какое-то другое, которые вы указали выше.
    2. Sergey
      Sergey
      2020-04-17 15:40:13
      Спасибо, Александр за ответ! Понаблюдаю еще за работой phpmyadmin.
      1. Sergey
        Sergey
        2020-04-16 19:11:02
        выбрал опцию — очистить БД, все записи с таблицы исчезли. Заново наполняю данными.
        Вопрос остался открытым. Причина и пути решения непонятны!
        1. Александр Мальцев
          Александр Мальцев
          2020-04-17 15:01:46
          Здравствуйте! Не знаю из-за чего у вас не смогли удалиться записи из таблицы базы данных. Может какая-то проблема в phpMyAdmin.