Fexxi Ответов: 2

Попытка отобразить строки в раскрывающемся списке, ничего не отображая и никаких ошибок (PHP)


В настоящее время я изучаю PHP, делая курс и создавая свои собственные вещи по мере обучения. Мне нравится понимать одну часть, прежде чем перейти к следующей, и, честно говоря, я уже несколько дней нахожусь на этом биоте. Я пытаюсь отобразить строки из моей базы данных (установленное соединение и проверено кнопкой "Создать запись") в тегах. Вот мой код (простите за дизайн, это чисто для моей собственной практики).

reg-prac.php

в <предварительно&ГТ;&ЛТ;?PHP относится "db-prac.php"?&ГТ;
<?php include "func-prac.php"?>
<?php
if(isset($_POST['create'])){
CreateEntry();
}
?>
<!DOCTYPE html>
<html lang="en">
<голова>
<meta charset="UTF-8">
в <название&ГТ;зарегистрироваться на</название&ГТ;
<link rel="таблица стилей" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body style="background-color: grey;"><br>
<div class="container" style="height: 30%; width: 40%; background-color:lightblue; padding-top:20px;">
<div class="form-group">
&ЛТ;форма метод="сообщение" действие="reg-prac.php"&ГТ;
&ЛТ;метка для="имя" стиль="цвет: White;"&ГТ;имя</ярлык&ГТ;
<input type="text" class="form-control" name ="name">
&ЛТ;метка для="пароль" стиль="цвет: White;">По фамилии&ЛТ;/ярлык&ГТ;
в <тип входного="текст" класс="форма контроля" наименование="sname"&ГТ;
<br>
<div clas="container" style="background-color: #e3b3e8; padding-top: 20px; padding-bottom:20px;border-radius: 25px;">
<центр>
в <тип входного="представить" значение="обновить" имя="обновить"и GT;
в <тип входного="представить" значение="удалить" имя="удалить"и GT;
в <тип входного="представить" значение="прочитать" название="читать"и GT;
в <тип входного="представить" значение="создать" имя="создать"и GT;
&ЛТ;выберите имя="код" значение=""&ГТ;
<?php
DisplayRows();
?>
</select>
</центр>

</div>

</форма>

</body>
</html>

func-prac.php:

в <предварительно&ГТ;&ЛТ;?в PHP

// Функция для создания записи

функция CreateEntry(){
глобальная связь;
$name = $_POST['имя'];
$sName = $_POST['sname'];
$query = "вставить в значения пользователей (имя пользователя, пароль) ('$name','$sName');";
$result = mysqli_query($connection, $query);
if(!$result){
die("Error" . mysqli_error($result));
}
еще{
Эхо "добавлено в базу данных";
}


}

// Функция отображения строк

функция DisplayRows() {
глобальная связь;
глобальный идентификатор;
$query= "SELECT * users";
$result=mysqli_query($connection, $query);
if(!$result2){
die("FAILED" . mysqli_error($result));
}
еще{
while ($row = mysqli_fetch_assoc($result)){
$идентификатор=$строки['идентификатор'];
Эхо "&ЛТ;вариант ID='$ID и в'>$ID и ЛТ;/вариант&ГТ;";
}
}



}
?>

db-prac.php:

в <предварительно&ГТ;&ЛТ;?в PHP
$connection = mysqli_connect('localhost', 'root', ", 'prac');
if(!$connection){
die("не удалось установить соединение." . mysqli_error($connection));
}
еще{
Эхо "подключено";
}

?>


Любая помощь будет очень признательна. Заранее большое спасибо.

Что я уже пробовал:

Передавая различные параметры туда-сюда, мы сделали $connection и $id глобальными.

Я также пытался смотреть на него часами.

2 Ответов

Рейтинг:
16

W∴ Balboos, GHB

Подумайте о том, чтобы разбить его на тестируемые кусочки размером с укус.
1 - Проверьте возвращаемые данные из базы данных. Это то, чего ты хочешь?
2 - Правильно ли вы запрашиваете данные (то есть можете ли вы просто повторить их?)
3 - Попробуйте принудительно ввести простые данные в свой выпадающий список - никакого SQL. Это заметно?

Если 1, 2 и 3 работают так, как ожидалось, то вы как бы сузили свою проблему до того, как вы преобразуете свой SQL в текстовые строки для отображения в раскрывающемся списке.

Упрощение - когда он работает, то добавьте другие функции, пока он не перестанет работать. Исправьте особенности шланга.

Кроме того, значение для select основано на списке select - не принадлежит как атрибут

<select name="id" value="">
<?php
DisplayRows();
?>


Рейтинг:
1

Fexxi

Я забыл добавить, что я также пытался просто повторить его в виде обычного текста, чтобы проверить его, и ничего. Я последовал вашему совету и переключил свой тег на теги, и это дало мне ошибку MySqli, которая указала мне в направлении моей переменной my $query, которая, как я затем обнаружил, использовала неправильный синтаксис.

Я пропустил слово "от". Большое спасибо за вашу помощь.