2016-03-03 3 views
1

Я создал форму HTML, после нажатия кнопки отправки все значения хранятся в базе данных MySQL.Определение формы HTML Вставить в базу данных

Я хочу, чтобы создать возможность редактировать форму. Я думаю о том, что после нажатия кнопки Edit форма кнопки должна открываться точно так же, как новая форма, только со всеми заполненными значениями, которые были вставлены в базу данных.

Как я могу это достичь? Я думал что-то вроде хранить HTML-код со значениями в базе данных (от <form> до </form>), но я не знаю, если это хорошая идея, и это возможно вообще.

Моя реальная форма имеет более 100 полей, но упростили это выглядит следующим образом:

HTML форма:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Add Record Form</title> 
</head> 
<body> 
<form action="insert.php" method="post"> 
    <p> 
     <label for="firstName">First Name:</label> 
     <input type="text" name="firstname" id="firstName"> 
    </p> 
    <p> 
     <label for="lastName">Last Name:</label> 
     <input type="text" name="lastname" id="lastName"> 
    </p> 
    <p> 
     <label for="emailAddress">Email Address:</label> 
     <input type="text" name="email" id="emailAddress"> 
    </p> 
    <input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

PHP код для вставки в базу данных:

<?php 
/* Attempt MySQL server connection. Assuming you are running MySQL 
server with default setting (user 'root' with no password) */ 
$link = mysqli_connect("localhost", "root", "", "demo"); 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// Escape user inputs for security 
$first_name = mysqli_real_escape_string($link, $_POST['firstname']); 
$last_name = mysqli_real_escape_string($link, $_POST['lastname']); 
$email_address = mysqli_real_escape_string($link, $_POST['email']); 

// attempt insert query execution 
$sql = "INSERT INTO persons (first_name, last_name, email_address) VALUES ('$first_name', '$last_name', '$email_address')"; 
if(mysqli_query($link, $sql)){ 
    echo "Records added successfully."; 
} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
} 

// close connection 
mysqli_close($link); 
?> 
+0

Да, это возможно. Вы должны получить все данные по щелчку редактирования, а затем заполнить форму. взгляните на этот учебник - http://www.startutorial.com/articles/view/php-crud-tutorial-part-3/ –

+0

Также прочитайте подготовленные инструкции при использовании современных методов связи PHP. – Strawberry

ответ

1

Это можно сделать, запросив все значения из базы данных:

$result = mysqli_query($link, "SELECT * from persons WHERE UserId = '$UserId'"); 
while ($row = mysqli_fetch_assoc($result)) { 
    $first_name = $row['first_name']); 
    $last_name = $row['last_name']); 
    $email_address = $row['email_address']); 
} 

mysqli_close($link); 

Тогда echo в атрибуте value:

<label for="firstName">First Name:</label> 
<input type="text" name="firstname" id="firstName" value=<?php echo $first_name ?>"> 

<label for="lastName">Last Name:</label> 
<input type="text" name="lastname" id="lastName" value=<?php echo $last_name ?>"> 

<label for="emailAddress">Email Address:</label> 
<input type="text" name="email" id="emailAddress" value=<?php echo $email_address ?>"> 
+0

Благодарим вас за ответ, но как установить эти переменные? Что-то вроде? '$ last_name =" SELECT LastName FROM Table WHERE UserId = $ UserId' – Infinity

+0

@Infinity Обновлено сообщение, чтобы включить запрос, надеюсь, что это вам поможет! :) – Panda

+0

Еще раз спасибо, похоже, будет работать! – Infinity

Смежные вопросы