#php
#php
Вопрос:
Я пытаюсь отобразить входные данные базы данных в текстовом поле для редактирования. Кажется, я не могу заставить это работать?! Страница ссылается с кнопки редактирования сообщения на форуме. Во-первых, я не знаю, как получить информацию базы данных для отображения этого конкретного поля, а также я не понимаю, как убедиться, что сообщение, которое пользователь нажимает для редактирования, является отображаемым сообщением.
Мой код выглядит примерно так
<?php
#data preparation for the query
$id=$_GET['id'];
# selects title and description fields from database
$sql = "SELECT a_answer FROM $tbl_name WHERE question_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<h3>Edit</h3> <form action="save_edit.php" enctype="multipart/form-data" method="post" name="myForm" />
<table>
<tr>
<td><b>Answer</b></td>
<td><textarea cols="80%" rows="10" name="a_answer"><?php echo $row['$a_answer']; ?></textarea></td>
</tr>
</table> <input name="id" type="hidden" value="<? echo $id; ?>">
<input name="enter" type="submit" value="Edit"> </form>
<?php mysql_close(); ?>
Комментарии:
1.
$rows
содержит строку, и вы также подписываетесь$row
на предложение, как насчет того, чтобы перейти к какому-нибудь хорошему руководству2. да, это исправлено, но по-прежнему безуспешно
Ответ №1:
подтвердите, является ли идентификатор вопроса integer или varchar в вашей базе данных. если это целое число, то удалите одинарные кавычки. (просто подсказка, возможно, это поможет вам. ). Еще одна вещь, вам не нужно добавлять multipart в свою форму, если вы не загружаете никаких файлов, еще один совет от меня.
Ответ №2:
Две ошибки в вашем коде: во-первых, вы используете row
вместо rows
. Второй — это знак доллара, который вы используете при доступе к полю. Приведенный ниже код должен работать при условии, что ваш запрос к базе данных правильный.
<?php
#data preparation for the query
$id=$_GET['id'];
# selects title and description fields from database
$sql = "SELECT a_answer FROM $tbl_name WHERE question_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<h3>Edit</h3> <form action="save_edit.php" enctype="multipart/form-data" method="post" name="myForm" />
<table>
<tr>
<td><b>Answer</b></td>
<td><textarea cols="80%" rows="10" name="a_answer"><?php echo $rows['a_answer']; ?></textarea></td>
</tr>
</table> <input name="id" type="hidden" value="<? echo $id; ?>">
<input name="enter" type="submit" value="Edit"> </form>
<?php mysql_close(); ?>
Другим способом решения проблемы было бы использовать подготовленные инструкции и позволить PHP и MySQL определить правильный тип. Здесь можно найти простой пример.
Комментарии:
1. Нет проблем. Вы должны указать, что этот ответ является решением вашей проблемы, приняв его, чтобы другие могли потенциально извлечь выгоду. Спасибо!