Reputation: 61
I have a script that updates MySQL tables with the values from an HTML and processed by PHP. When I click on the edit link which is on the table it redirects me to the edit page, where it shows the records fetched from the MySQL database - but it does not update the record.
Here is my link code:
echo "<td><a href=\"cityproc.php?accode=$row[accode]\"><img src='images/edit.png'></a></td>";
Here is my edit page code:
<?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
}
?>
Upvotes: 2
Views: 26384
Reputation: 126
Try this.... $link = mysql_connect("localhost", "root", '')or die(mysql_error()); mysql_select_db("webapp",$link) or die(mysql_error());
Or
mysql_query("UPDATE city
SET name
='$city' WHERE accode='$accode'", $link)
Echo the update query and run it manually in phpmyadmin.
Upvotes: 0
Reputation: 86
$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;
}
}
Upvotes: 1
Reputation: 2708
Write your PHP code in cityproc.php
and html code in another file say cityproc.html
then check and tell what is the error
Upvotes: 0
Reputation: 53
As you have written all the code in the same page it is not required to write the form action here. On submit your page will be automatically refreshed. Try doing this once and try to debug the code by printing print_r($_POST)
and see whether you get your data or not.
Also the query you have written is not correct. You have to write it as :
$result = mysql_query("UPDATE `city` SET `name`='" . $city . "' WHERE accode='" . $accode . "') or die(mysql_error());
Upvotes: 1