отобразить поле базы данных в текстовом поле

#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. Нет проблем. Вы должны указать, что этот ответ является решением вашей проблемы, приняв его, чтобы другие могли потенциально извлечь выгоду. Спасибо!