如何创建编辑表单以使用PHP和MySQL从HTML表单更新记录

时间:2013-01-18 06:33:34

标签: php html mysql css

我有一个脚本,用HTML中的值更新MySQL表并由PHP处理。 当我点击表格上的编辑链接时,它会将我重定向到编辑页面,在该页面中显示从MySQL数据库获取的记录 - 但它不会更新记录。

这是我的链接代码:

echo "<td><a href=\"cityproc.php?accode=$row[accode]\"><img src='images/edit.png'></a></td>";

这是我的编辑页面代码:

<?php
session_start();
if (!isset($_SESSION["username"])) {
    header("Location: unauthorize_access.php");
}
mysql_connect("localhost", "root", '')or die(mysql_error());
mysql_select_db("webapp") or die(mysql_error());

$accode = mysql_real_escape_string($_REQUEST['accode']); // is used for both $_GET/$_POST variables

if(isset($_POST['submit']))
{

          $city = mysql_real_escape_string($_POST['city']);
          $result = mysql_query("UPDATE `city` SET `name`='$city' WHERE accode='$accode'") or die(mysql_error());

          echo "<b>Thank you! Record UPDATED Successfully!<br>You'll be redirected to Home Page after (1) Seconds";
          echo "<meta http-equiv=Refresh content=1;url=table.php>";
}
elseif($accode)
{

        $result = mysql_query("SELECT * FROM city WHERE accode='$accode' ");
        $myrow = mysql_fetch_assoc($result);

                $code = $myrow["code"];
                $city = $myrow["name"];
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" type="text/css" href="form2/view.css" media="all">
<script type="text/javascript" src="form2/view.js"></script>
<script type="text/javascript" src="form2/calendar.js"></script>
</head>
<body id="main_body" >

    <img id="top" src="form2/top.png" alt="" />
    <div id="form_container">

        <h1><a>City</a></h1>
        <form id="city" class="appnitro" enctype="multipart/form-data" method="post" action="cityproc.php">
                    <div class="form_description">
        <h2>City</h2>
                <table border="0" width="100%">
                    <tr>
                        <td><?php echo $accode; ?></td>
                    </tr>
            </table>

        </div>
                    <table border ="0px" width="100%">
                        <input type="hidden" value="<? echo $myrow['accode']?>" name="accode"></input> 
                        <tr>
                            <td><label class="description" for="element_1">Code</label></td><td><input  name="code"  type="text" maxlength="6"  Placeholder="Please enter a code" value="<?php echo $code; ?>" disabled="disabled" /></td>
                        </tr>
                        <tr>
                            <td><label class="description" for="element_1">Name</label></td><td><input  name="city" size="40" type="text" maxlength="40" Placeholder="Please enter a name" value="<?php echo $city; ?>"/></td>

                        </tr>
                        <tr>
                            <td></td><td colspan="2" align="center"><input type="submit" name="submit" value="Save" /></td>
                        </tr>
                    </table>
                </form>
                </body>
    </html>
<?php
}
?>

4 个答案:

答案 0 :(得分:1)

由于您已在同一页面中编写了所有代码,因此无需在此处编写表单操作。提交后,您的页面将自动刷新。尝试执行此操作并尝试通过打印print_r($_POST)调试代码,看看是否获得了数据。

您编写的查询也不正确。你必须把它写成:

$result = mysql_query("UPDATE `city` SET `name`='" . $city . "' WHERE accode='" . $accode . "') or die(mysql_error());

答案 1 :(得分:1)

        $city = mysql_real_escape_string($_POST['city']);
        if(!empty($city)) {
            try {
                $result = mysql_query("UPDATE `city` SET `name`= '$city' WHERE accode='$accode'");
            } catch (Exception $e) {
                var_dump($e->getMessage()); // see what's the error.
            }

            if ($result) {
                echo $result;
            } else {
                echo $result;
            }
        }

答案 2 :(得分:0)

试试这个.... $ link = mysql_connect(“localhost”,“root”,“”)或die(mysql_error()); mysql_select_db(“webapp”,$ link)或死(mysql_error());

mysql_query(“UPDATE city SET name ='$ city'WHERE accode ='$ accode'”,$ link)

回显更新查询并在phpmyadmin中手动运行。

答案 3 :(得分:0)

在cityproc.php中编写PHP代码

和另一个文件中的html代码说cityproc.html

然后检查并告诉错误是什么