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

Sergey
Sergey
902
7
Здравствуйте, Александр. Пробовал по-разному сформулировать суть своего вопроса в поисковике, но ни единого поста по моему случаю, по крайней мере, то что могло бы помочь! Создал базу данных в phpmyadmin, в ней разместил таблицу. Через INSERT начал наполнять таблицу. Заметил, что при каждом обновлении страницы - запись дублируется. Почитал - это нормальное поведение INSERT. Начал удалять лишние (продублированные записи) - некоторые записи начали появляться с другими id. То-есть, количество записей остается неизменным (я так понимаю, выбранные элементы удаляются и тут же появляется такое же количество аналогичных записей, но только со следующими id по порядковому номеру). Аналогичное поведение, как в майадмине, так и через оператор DELETE в php документе. Отключил соединение с базой данных в php документе, все закоментировал. Перешел в майадмин, в таблице выбрал все записи и удалить. Все удалилось, а одна запись в 20 экземплярах осталась! Никак не поддается удалению. Это глюк базы? Или существует конкретная причина? Хочу разобраться с этим вопросом, так как появление подобной проблемы при работе с действующей объемной базой данных может обойтись в месяц, а то и более, трудоемкой и ненужной работы! СПАСИБО!
Изображения:

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

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

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