简体   繁体   English

MySQL不更新PHP形式

[英]mysql not updating php form

I have a database with content. 我有一个内容数据库。

I have a page that displays a table of all records. 我有一个页面,显示所有记录的表。 You can click edit for any record you wish, when you click edit it redirects you to a new form and populates all the information into some form feilds. 您可以单击所需的任何记录的“编辑”,当您单击“编辑”时,它会将您重定向到新表单,并将所有信息填充到某些表单域中。

When you edit the form values and click submit it is supposed to update the record in the database. 当您编辑表单值并单击提交时,应该更新数据库中的记录。

I get a success message when I update,but the record doesnt actually update. 更新时,我收到一条成功消息,但记录实际上并未更新。

form.php: form.php:

    <?php
            $emp_id= ($_GET["id"]);


              $sql =    "SELECT * FROM people
                        WHERE id='$emp_id' LIMIT 1";
              $result = mysql_query($sql);
              $row_people = mysql_fetch_array($result);
             ?>

              <form method="post" action="update.php?id=<?php echo "$emp_id" ?>">
              <input type="hidden" name="id" value="<?php echo "$row_people[id]"; ?>">

                <fieldset>
                    <legend><b>Name</b></legend>
                        First Name:<input type="text" name="first_name" size="20" value="<?php echo "$row_people[first_name]"; ?>">
                        Last Name:<input type="text" name="last_name" size="40" value="<?php echo "$row_people[last_name]"; ?>">
                </fieldset>

update.php update.php

<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="ogs"; // Database name
$tbl_name="people"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$emp_id= ($_GET["id"]);
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];

// update data in mysql database
$sql="UPDATE $tbl_name SET first_name='$first_name', last_name='$last_name' WHERE id='$emp_id' LIMIT 1";
$result=mysql_query($sql);

// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
}

else {
echo "ERROR";
}

?> 

Not sure what I am missing. 不知道我在想什么。

If i change the $first_name in my query to actual text, it updates fine. 如果我将查询中的$ first_name更改为实际文本,它会更新正常。

So I'm assuming something is wrong with my form.php or the $_POST? 所以我假设我的form.php或$ _POST有问题吗?

Change from $row_people[first_name] to $row_people['first_name'] in Form.php file. Form.php文件中的$row_people[first_name]更改为$row_people['first_name'] The same for id and last_name field also. idlast_name字段也相同。

<?php
$emp_id= ($_GET["id"]);
$id = 0; $firstName = ''; $lastName = '';

$sql = "SELECT * FROM people
        WHERE id='$emp_id' LIMIT 1";
$result = mysql_query($sql);
$row_people = mysql_fetch_array($result);

if(!empty($row_people)) {
    $id = $row_people['id'];
    $firstName = $row_people['first_name'];
    $lastName = $row_people['last_name'];
}
?>

<form method="post" action="update.php?id=<?php echo "$emp_id" ?>">
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    <fieldset>
        <legend><b>Name</b></legend>
        First Name:<input type="text" name="first_name" size="20" value="<?php echo $firstName; ?>">
        Last Name:<input type="text" name="last_name" size="40" value="<?php echo $lastName; ?>">
    </fieldset>
</form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM