HTML-тег option с запросом PHP MYSQL SELECT, приводящий к тому, что все после тега не отображается - PullRequest
0 голосов
/ 17 апреля 2019

Я создаю традиционную страницу вставки PHP с PDO для MySQL.Однако возникает проблема, когда остальная часть страницы вставки не отображает все после тега параметра HTML, как показано на снимке экрана 1.

Затем я решил захватить фрагмент тега параметра в новый файл, и этопоказать содержимое, как показано на скриншоте 2.

Вот снимок экрана 1: enter image description here

Скриншот 2:

enter image description here

Это проблемный фрагмент:

<td>
    <select>
        <?php
        include_once 'connect.php';

        $sql2 = "SELECT * FROM kota";
        $query2 = $conn->query($sql2);

        while ($row = $query2->fetch(PDO::FETCH_ASSOC))
        {
            echo "<option value='".$row['id']."'>".$row['nama']."</option>";
        }

        $conn = null;
        ?>
    </select>
</td>

Полный фрагмент кода: https://pastebin.com/00GQE2i6

Что-то не так?Или я должен разделить страницу на HTML и PHP-файл?Любое предложение?

1 Ответ

0 голосов
/ 17 апреля 2019

Как сказано в руководстве:

Оператор include_once включает и оценивает указанный файл во время выполнения сценария.Это поведение похоже на оператор include, с той лишь разницей, что если код из файла уже был включен, он не будет включен снова, а include_once возвращает TRUE.Как следует из названия, файл будет включен только один раз.

Так что, если вы используете его дважды, второй include_once() ничего не будет делать.Теперь, когда вы выполняете $conn = null; после каждого использования соединения, вы уничтожаете соединение, которое вы установили с первого include_once(), поэтому соединения не осталось, а второе include_once() не будет повторно соединять соединение, так как оно не будетбыть выполненным PHP.

Вам действительно нужно подключаться только один раз для каждого скрипта.Поэтому оставьте первую include_once() там, где она есть, и удалите вторую.

Затем найдите все строки $conn = null; в своем коде и удалите все из них.PHP автоматически закроет соединение с базой данных, когда очистит память после завершения скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...