2

我有一个脚本,它使用 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

4 回答 4

1

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

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

$result = mysql_query("UPDATE `city` SET `name`='" . $city . "' WHERE accode='" . $accode . "') or die(mysql_error());
于 2013-01-18T06:59:33.843 回答
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;
            }
        }
于 2013-01-18T08:00:12.770 回答
0

试试这个.... $link = mysql_connect("localhost", "root", '')or die(mysql_error()); mysql_select_db("webapp",$link) 或 die(mysql_error());

或者

mysql_query("UPDATE citySET name='$city' WHERE accode='$accode'", $link)

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

于 2013-01-18T06:43:07.243 回答
0

在 cityproc.php 中编写您的 PHP 代码

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

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

于 2013-01-18T07:04:41.193 回答