我有一个脚本,用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
}
?>
答案 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
然后检查并告诉错误是什么