从HTML表单编辑/更新MySQL数据库值


Edit/Update MySQL DB Values from HTML form

我有一个表单,它当前向mysql数据库提交值。每次提交后,刚刚插入到mysqldb中的数据都会在表单下面得到响应。表单有动态输入字段。我知道我想添加编辑之前插入的值的可能性。我放置了一个编辑按钮,将用户重定向到personel_edit.php页面,希望根据academy_id填充所有输入字段。在代码中,您将看到我如何进行初始插入,然后在进行选择后显示插入的信息。但我不知道如何填充这个动态字段,或者根据academy_id将数据传递到编辑页面?示例

提交后-插入/显示

 if(isset($_POST['submit'])){
$name = $_POST['name'];
$acad_id = $_POST['acad_id'];
$courses_offered=$_POST['courses_offered'];
$query_init  = "INSERT INTO academy (name, academy_id)  VALUES (:name, :acad_id);"; 
$query_prep = $db_con->prepare($query_init);
$insert_result = $query_prep->execute(array(
    "name" => $name,
    "acad_id" => $acad_id
));
$s = 1;
while(isset($_POST['person_fname_' . $s]))
{
    $contact_role = isset($_POST['person_contact_' . $s]) ? 1 : 0;
    $instructor_role = isset($_POST['person_instructor_' . $s]) ? 1 : 0;
    $person_fname = $_POST['person_fname_' . $s];
    $person_lname = $_POST['person_lname_' . $s];
    $person_email = $_POST['person_email_' . $s];
    $person_phone = $_POST['person_phone_' . $s];
    $person_fax = $_POST['person_fax_' . $s];
    $query_init2 = "INSERT INTO person (academy_id, contact_role, instructor_role, first_name, last_name, person_email, person_phone, person_fax) VALUES (:acad_id,:contact_role,:instructor_role,:person_fname,:person_lname,:person_email,:person_phone,:person_fax);";
    $query_prep2 = $db_con->prepare($query_init2);
    $insert_result2 = $query_prep2->execute(array(
        "acad_id" => $acad_id,
        "contact_role" => $contact_role,
        "instructor_role" => $instructor_role,
        "person_fname" => $person_fname,
        "person_lname" => $person_lname,
        "person_email" => $person_email,
        "person_phone" => $person_phone,
        "person_fax" => $person_fax
    ));
    $s++;

}
$db_select  = $db_con->prepare("
SELECT a.name, 
       a.academy_id,
       p.contact_role,
       p.instructor_role,
       p.first_name,
       p.last_name,
       p.person_email,
       p.person_phone,
       p.person_fax
FROM academy a
INNER JOIN person p ON a.academy_id = p.academy_id
WHERE a.academy_id = :acad_id
");
if (!$db_select) return false;
    if (!$db_select->execute(array(':acad_id' => $acad_id))) return false;
    $results = $db_select->fetchAll('PDO::FETCH_ASSOC);
    if (empty($results)) return false;
    $final_result = '';
    $first = true;
    foreach ($results as $value){
        if($first){
          $first = false;
          $final_result .= "<b>Academy Name: </b>".$value['name']."<b>  ID: </b>".$value['academy_id']."</br>";
        }
          $final_result .= "---------------------PERSONEL-----------------------</br>";
          $final_result .= "<b>First Name: </b>".$value['first_name']."</br><b>Last Name: </b>".$value['last_name']."</br><b>Email: </b>".$value['person_email']."</br>";
          $final_result .= "<b>This person has the role of an instructor: </b>".$value['instructor_role']."</br><b>This person has the role of a contact: </b>".$value['contact_role']."</br>";
          $final_result .= "<b>Phone: </b>".$value['person_phone']."</br><b>Fax: </b>".$value['person_fax']."</br>";        
    }
    $final_result .= '<button name="change" id="change" onClick="check(' . $value['academy_id'].');">Edit</button>';
}
    ?>

HTML表单

<form action="courses.php" method="POST">
Name: <input type="text" name="name"></br>
Academy<input id="academy_id" name="acad_id" placeholder="Academy ID" type="text" /></br>
            How many courses offered?
            <select name="courses_offered">
                <option value="default">---Select---</option>
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        <div id="course_catalog"></div>
        Personel Information:
        <ul id="pq_entry_1" class="clonedSection">
            <li>
                <input id="person_fname_1" name="person_fname_1" placeholder="Person #1 - First Name" type="text" />
            </li>
            <li>
                <input id="person_lname_1" name="person_lname_1" placeholder="Last Name" type="text" />
            </li>
            <li>
                <input id="person_email_1" name="person_email_1" placeholder="Email" type="text" />
            </li>
            <li>
                <input id="person_phone_1" name="person_phone_1" placeholder="Phone" type="text" />
            </li>
            <li>
                <input id="person_fax_1" name="person_fax_1" placeholder="Fax" type="text" />
            </li>
            <li>
                <input id="person_contact_1"  name="person_contact_1" type="checkbox" />Concact
            </li>
             <li>
                <input id="person_instructor_1"  name="person_instructor_1" type="checkbox" />Instructor
            </li>
        </ul>
        <input type='button' id='btnAdd' value='add another Person' />
        <input type='button' id='btnDel' value='delete Delete' />   
        </br>
        </br>
    <input value="SAVE" name="submit" type="submit">
</form> 
</body>
See Results:
<?php
echo $final_result;
echo $final_result2;

插入数据后,选择Max(academy_id)并存储在变量中。

 $var_academy_id=Max(academy_id)

然后传递这个变量。

通过查询如果您想编辑您的表单,请使用隐藏字段

<input type="hidden" name="status" value="update">

然后检查这个隐藏字段的post变量值如果更新,则使用更新查询;如果提交,则使用插入查询。