#php #html #forms
Вопрос:
Я хочу выполнить запрос, который даст мне только 1 строку.
Затем я хочу вставить эти данные в форму, чтобы затем отредактировать ее и выполнить другие действия, отправляя данные, но дело не в этом.
<form method="post">
<label for="Azienda">Azienda</label>
<input type="text" id="Azienda" name="Azienda" value="<?php echo escape($row["Azienda"]); ?>">
Гипотетически, я должен увидеть данные первого поля, взятые из запроса, вставленные в первую метку формы, но она пуста.
Это код, из которого я получаю результаты.
$name = $_GET['Azienda'];
$sql = "SELECT [...]
FROM [...]
WHERE [...] = :name
ORDER BY [...]";
$statement = $connection->prepare($sql);
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
Комментарии:
1. Недостаточно подробностей: как вы переходите от вашего SQL — запроса к
$row
массиву? Как определяется функцияescape
?2. Ответ на все вопросы, касающиеся «это пусто», — это свалка, свалка, свалка. Сбросьте
$row
, сбросьте результатescape()
в этой строке, сбросьте все связанные вещи в коде. Посмотрите, что содержат ваши переменные. Всякий раз, когда происходит какое-то неожиданное поведение, у вас возникает ошибка в вашей логике. Либо переменная не содержит того, что вы думаете, либо ваши условия не соответствуют. Что бы это ни было, вам нужно выполнить отладку, потому что мы не можем запустить ваш код.3. Я сбросил $result, и это показывает мне, что он получил все данные. Поэтому мне интересно, есть ли ошибка в коде формы, так как я извлек все данные.
4. Все есть на странице, название, форма. Данные извлекаются, но в метки формы ничего не вставляется.
Ответ №1:
Я не определял $row, в этом была проблема.
Ответ №2:
Это очень маленькая проблема. Вам следует просто добавить следующий код в свой .php
файл, приведенный ниже:
<form method="post">
<label for="Azienda">Azienda</label>
<input type="text" id="Azienda" name="Azienda" value="
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = ""; //database name
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT column_name(s) FROM table_name";
$conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["azienda"];//write your column name here which you want to fetch from database
}
} else {
echo "0 results";
}
?>">
Я надеюсь, что ваша проблема будет решена