mysql没有更新php表单

时间:2014-06-02 18:04:08

标签: php mysql post sql-update

我有一个包含内容的数据库。

我有一个显示所有记录表的页面。您可以单击编辑任何所需的记录,当您单击编辑时,它会将您重定向到新表单并将所有信息填充到某些表单中。

编辑表单值并单击“提交”时,应该更新数据库中的记录。

我更新时收到成功消息,但记录实际上没有更新。

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

<?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";
}

?> 

不确定我错过了什么。

如果我将查询中的$ first_name更改为实际文本,则更新正常。

所以我假设我的form.php或$ _POST有问题吗?

1 个答案:

答案 0 :(得分:0)

$row_people[first_name]文件中从$row_people['first_name']更改为Form.php。同样适用于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>