-1

ДД. Помогите найти в чем проблема. Создала форму на сейте для добавления записи в БД. Но почему- то после заполнения формы и нажатия кнопки ок, форма пропадает с вкладки. После обновления страницы, форма не появляется, спасает только снова нажать на кнопку страницы в шапке сайта.

    <?php   
   $sql = "SELECT * FROM KOMMUNALKA";
if($result = mysqli_query($conn, $sql)){
echo &quot;&lt;table class='komun'&gt;&lt;tr&gt;&lt;th&gt;Дата&lt;/th&gt;&lt;th&gt;Квартплата&lt;/th&gt;&lt;th&gt;ПЭС&lt;/th&gt;&lt;th&gt;КапРемонт&lt;/th&gt;&lt;th&gt;Мусор&lt;/th&gt;&lt;th&gt;Итог&lt;/th&gt;&lt;/tr&gt;&quot;;
foreach($result as $row){
    echo &quot;&lt;tr&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;DATA&quot;] . &quot;&lt;/td&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;KVARTPLATA&quot;] . &quot;&lt;/td&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;PES&quot;] . &quot;&lt;/td&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;KAPREMONT&quot;] . &quot;&lt;/td&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;MUSOR&quot;] . &quot;&lt;/td&gt;&quot;;
        echo &quot;&lt;td&gt;&quot; . $row[&quot;ITOG&quot;] . &quot;&lt;/td&gt;&quot;;
    echo &quot;&lt;/tr&gt;&quot;;
}
echo &quot;&lt;/table&gt;&quot;;
mysqli_free_result($result);

} else{ echo "Ошибка: " . mysqli_error($conn); } mysqli_close($conn); ?>

<?php //Если переменная DATE передана if (isset($_POST["DATE"])) { //Вставляем данные, подставляя их в запрос $sql = mysqli_query($link, "INSERT INTO KOMMUNALKA (DATE, KVARTPLATA, PES, KAPREMONT, MUSOR, ITOG) VALUES ('{$_POST['DATE']}', '{$_POST['KVARTPLATA']}', '{$_POST['PES']}', '{$_POST['KAPREMONT']}', '{$_POST['MUSOR']}', '{$_POST['ITOG']}')"); //Если вставка прошла успешно if ($sql) { echo '<p>Данные успешно добавлены в таблицу.</p>'; } else { echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>'; } } ?> <form action="" method="post" class="plus"> <table> <tr> <td>Дата:</td> <td><input type="DATE" name="DATE"></td> </tr> <tr> <td>Квартплата:</td> <td><input type="varchar" name="KVARTPLATA" size="15"> руб.</td> </tr> <tr> <td>ПЭС:</td> <td><input type="varchar" name="PES" size="15"> руб.</td> </tr> <tr> <td>Капремонт:</td> <td><input type="varchar" name="KAPREMONT" size="15"> руб.</td> </tr> <tr> <td>Мусор:</td> <td><input type="varchar" name="MUSOR" size="15"> руб.</td> </tr> <tr> <td>Итог:</td> <td><input type="varchar" name="ITOG" size="15"> руб.</td> </tr> <tr> <td colspan="2"><input type="submit" value="OK"></td> </tr> </table> </form>

  • 1
    добро пожаловать на Stack Overflow на русском! как задать хороший вопрос – aleksandr barakin Feb 21 '24 at 10:29
  • $conn, $link, закрытие соединения с базой посреди скрипта. Пожалуйста, разберись что у тебя в коде происходит. – u_mulder Feb 21 '24 at 11:13
  • Скажите, вы настроены учиться, как делать правильно? И в целом, вы готовы как-то реагировать на то что вам пишут? или вы из тех, кто зачем-то задает вопрос, а потом про него не вспоминает? – Ипатьев Feb 21 '24 at 12:08
  • как раз и учусь и вот не могу понять в чем проблема – NewProgr1999 Feb 21 '24 at 13:04
  • Чтобы понять, вам уже написали - вы пытаетесь сделать запрос после того, как закрыли соединение с базой данных. Но в общем случае понимать как раз не обязательно, достаточно прочитать. У вас происходит ошибка при обращении к базе данных, но вы её не видите. Чтобы увидеть, надо настроить отображение ошибок. Как настроить, написано по ссылке, прикрепленной вверху вашего поста. В ошибке будет написано,какая конкретно проблема. – Ипатьев Feb 21 '24 at 14:36

1 Answers1

0

Попробуйте в action у формы прописать путь до скрипта. Возможно (если вы пробуете в браузере Safari), переход идёт не на текущий скрипт, а в /

Кроме того, возможно возникает "ошибка 500" в скрипте, и веб сервер не настроен на её отображение. Посмотрите результат выполнения скрипта в консоли браузера.

  • добро пожаловать на Stack Overflow на русском! пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав [edit] – aleksandr barakin Feb 21 '24 at 10:40
  • Там и логика и форма в одном файле. – Simon Feb 21 '24 at 10:44
  • В целом, фраза "веб сервер не настроен на её отображение" является правильной. Но идущее следом "Посмотрите результат выполнения скрипта в консоли браузера" - это полное непонимание как собственного совета. так и в принципе того, как работает веб-сервер. – Ипатьев Feb 21 '24 at 12:09
  • Эмм.. вы видимо забыли или не знаете, что если например у того же PHP в настройках не указано "показывать все ошибки", то в случае падения оного, в случае например синтаксической ошибки, ошибка в ответе вернется лишь в заголовках ответа. Это то как раз отлично и видно в консоли браузера. – Артемий Грибов Feb 21 '24 at 13:07
  • И что там в заголовках ответа будет? В каком заголовке будет текст\описание ошибки? И откуда в заголовках возьмется инфа об ошибке, если в настройках не указано "показывать все ошибки"? – u_mulder Feb 21 '24 at 13:25
  • Как минимум номер ошибки: 500, 403 и т.д. Этого достаточно, чтобы понять в чем проблема. Если нужны подробности, то естественно нужно уже будет идти в логи сервера. NewProgr1999 ведь спрашивает, "почему белый экран". Заглянет в консоль и увидит ошибку 500. Заглянет в логи и увидит более подробный текст – Артемий Грибов Feb 21 '24 at 13:29
  • Так это не заголовок ответа, это код состояния. – u_mulder Feb 21 '24 at 13:32
  • Во-первых, там не белый экран. во-вторых, чтобы посмотреть в логи, смотреть сначала в консоль не обязательно. Можно СРАЗУ туда смотреть. А в третьих, в вашем ответе про логи ничего нет, что делает его бесполезным. Проблема всех приходящих сюда доброхотов в том, что они не считают нужным хотя бы немного потрудиться над ответом, и просто кидают какую-то реплику. Надо или прикладывать больше усилий, или найти себе другое место для самовыражения. – Ипатьев Feb 21 '24 at 14:39