php - 似乎无法通过 id 编辑/修改我的 php 表

标签 php html mysql database

<?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }


mysql_select_db("database", $con);

if(!isset($_POST['submit'])){
$result = mysql_query("SELECT * FROM pleasework ORDER BY ID"); 
$row = mysql_fetch_array($result);
}

?>

<form action="?php echo $_SERVER['PHP_SELF'];?>" id="form2" method="post" name="form2">
<img id="close1" src="X.png" width="25" height="25" onclick ="div_hide1()">
<h2><font size="6">Please change existing data</font></h2>
<hr>
<br> 

     <font color="yellow">Change Name to: </font><input type="text" name="New" value="<?php echo $row['Name'];?>"/><br><br>
      <font color="yellow"> Change Cause to: </font> <input type="text" name="New1" value="<?php echo $row['Cause'];?>"/><br><br>
     <font color="yellow">Change Symptom to:  </font><input type="text" name="New2" value="<?php echo $row['Symptom'];?>"/><br><br>
      <font color="yellow"> Change Gene_affected to:  </font><input type="text" name="New3"value="<?php echo $row['Gene_affected'];?>" /><br><br>
      <input type="hidden" name="id" value="<?php echo $_GET['ID'];?>"/>
    <input type="submit" onclick="clicked(event)" />
</form>

<?php
if(isset($_POST['submit'])){
mysql_query("UPDATE pleasework SET Name= '$_POST[New]' WHERE ID='$_POST[id]'");
mysql_query("UPDATE pleasework SET Cause= '$_POST[New1]' WHERE     ID='$_POST[id]'");
mysql_query("UPDATE pleasework SET Symptom= '$_POST[New2]' WHERE ID='$_POST[id]'");
mysql_query("UPDATE pleasework SET Gene_affected= '$_POST[New3]' WHERE ID='$_POST[id]'");
echo "Change Successful<br>" ;
header("Location: databse.php");
mysql_close($con);
} 
else {}
?>

这是我的 php 文件。

  while($row = mysql_fetch_array($result))
            {
                 echo "<TR>";
             echo "<TD>" . $row['ID'] ."</TD>";
             echo "<TD>" . $row['Name'] . "&nbsp;&nbsp;&nbsp;&nbsp;</TD>";
             echo "<TD>" . $row['Cause'] . "&nbsp;&nbsp;&nbsp;&nbsp;</TD>";
             echo "<TD>" . $row['Symptom']. "&nbsp;&nbsp;&nbsp;&nbsp;</TD>"; 
             echo "<TD>" . $row['Gene_affected'] . "&nbsp;&nbsp;&nbsp;&nbsp;        </TD>";     
  echo "<TD><a href=\"delete.php?id=" . $row['ID'] ."\"><font     color='red'>Delete row</font></a> &nbsp;&nbsp;&nbsp;&nbsp;</TD>";

  echo "<TD><a href=\"edit.php?id=" . $row['ID'] ."\"><font     color='red'>modify</font></a> &nbsp;&nbsp;&nbsp;&nbsp;</TD>";
             echo "</TR>";
            }

此部分有一个链接到 edit.php 文件的修改按钮。这里的错误是,没有将表中的值带到编辑页面,然后提交表单也不起作用。请帮忙

最佳答案

您的代码看起来有点困惑。

首先,为什么要把修改例程放在输出表单之后呢?特别是在修改后发送 header 函数后,如果之前有一些输出,则会失败。

另请注意一个拼写错误:您忘记在 form 声明中正确打开 php 标记。按如下方式更改:

 <form action="<?php echo $_SERVER['PHP_SELF'];?>" id="form2" method="post" name="form2">

主要问题是您检查是否设置了$_POST[submit],但由于缺少属性name,因此未设置。

按如下方式更改:

 <input type="submit" name="submit" onclick="clicked(event)" />

现在你的脚本应该可以工作了(我没有测试过sql)。

另请注意,您的 UPDATE 例程是多余的:您可以通过以下方式将 4 条语句减少到只有 1 条:

 $result = mysql_query
 (
    "UPDATE pleasework SET Name='{$_POST[New]}', Cause='{$_POST[New1]}', Symptom='{$_POST[New2]}', Gene_affected='{$_POST[New3]}' WHERE ID={$_POST[id]}"
 );

关于 PHP 原始 MySQL API:

This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0

关于php - 似乎无法通过 id 编辑/修改我的 php 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35114395/

相关文章:

php - 从对 PHP 脚本的 ajax 调用获取 JSON 响应

php - 使用关联数组显示和更新数据库

javascript - 将 HTML 语法高亮显示到用于编写代码的文本区域中

center - 无法将文本居中

mysql - 如何在我的mysql View 中更改和添加 'id'列

mysql - 如何查询数据库中不相似但几乎匹配的项目

php - fatal error : Class 'Dotenv\Dotenv' not found in . ../Bootstrap/DetectEnvironment.php 第 24 行

PHP删除字符串中的一个字符

javascript - 使用 Repeat None,如何使页脚背景适合 100% 宽度

mysql - 在 URL 中使用特殊字符