PHP更新SQL表单

时间:2013-11-06 19:43:26

标签: php sql forms sql-update

我在线使用各种帮助指南写了这个:

<?php // update
if(isset($_POST['update']))
{
$id = $_POST['id'];
$emp_salary = $_POST['emp_salary'];

$sql = "UPDATE pins ".
   "SET is_private = $emp_salary ".
   "WHERE id = $pinDetails->id" ;

mysql_select_db('test_db');
$retval = mysql_query( $sql );
if(! $retval )
{
  die('Could not change: ' . mysql_error());
}
echo "Post is now private<br><br>";
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td>Private
<input name="emp_salary" type="text" id="emp_salary" value="1">
<input name="id" type="hidden" id="id">
<input name="update" type="submit" id="update" value="Change">
</td>
</tr>
</table>
</form>
<?php
 }
?><!-- update -->

我正在尝试创建一个在线表单,我可以返回将公开更改为私人,只需输入1表示私人或0公开作为审核工具。

但是,当我每次重新访问页面时提交表单(其工作)时,它只是说echo语句'post is now private'。我希望每次都能看到这个表格,所以我可以在必要时一次又一次地重复使用。

为了达到这个目的,我需要改变什么?

2 个答案:

答案 0 :(得分:0)

在最后一个条件中删除其他。

if(isset($_POST['update']))
{
$id = $_POST['id'];
$emp_salary = $_POST['emp_salary'];

$sql = "UPDATE pins ".
   "SET is_private = $emp_salary ".
   "WHERE id = $pinDetails->id" ;

mysql_select_db('test_db');
$retval = mysql_query( $sql );
if(! $retval )
{
  die('Could not change: ' . mysql_error());
}
echo "Post is now private<br><br>";
}
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td>Private
<input name="emp_salary" type="text" id="emp_salary" value="1">
<input name="id" type="hidden" id="id">
<input name="update" type="submit" id="update" value="Change">
</td>
</tr>
</table>
</form>

答案 1 :(得分:0)

后:

 echo "Post is now private<br><br>";

添加:

 echo '<a href="' . $_PHP_SELF . '">see form</a>';

您的问题是表单发布变量仍然被发送到服务器,因此您的if语句

if(isset($_POST['update']))

评估为true,表单不显示。