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

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

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

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

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

      PS: ваш совет о PDO я наполовину понял. Код PDO создал, он работает — но при обновлении та же история, что и INSERT.
      1. Sergey
        17 апреля 2020, 19:57
        Здравствуйте Александр, надеюсь, получить от Вас «уразумения»!
        Относительно описанной выше ситуации — появились дополнительные сведения.
        На образовательном ресурсе по программированию, я уточнил код, что меня интересовал. И вот, та же проблема с базой данных.
        В БД я увидел на странице 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. Александр Мальцев
          18 апреля 2020, 03:22
          Ошибка в этой строке:
          header("Location: " . $_SERVER['REQUEST_URI']);
          
          Здесь вы перенаправляете на этот же скрипт. В результате этот скрипт будет выполнен очень много раз из-за переадресации на самого себя. Это будет происходит столько раз, пока сервер не остановит это. В вашем случае это 25 раз или какое-то другое, которые вы указали выше.
        2. Sergey
          17 апреля 2020, 15:40
          Спасибо, Александр за ответ! Понаблюдаю еще за работой phpmyadmin.
          1. Sergey
            16 апреля 2020, 19:11
            выбрал опцию — очистить БД, все записи с таблицы исчезли. Заново наполняю данными.
            Вопрос остался открытым. Причина и пути решения непонятны!
            1. Александр Мальцев
              17 апреля 2020, 15:01
              Здравствуйте! Не знаю из-за чего у вас не смогли удалиться записи из таблицы базы данных. Может какая-то проблема в phpMyAdmin.
            Войдите, пожалуйста, в аккаунт, чтобы оставить комментарий.