繁体   English   中英

使用文本框使用php表单更新MySQL数据库

[英]Update MySQL database using php form using text boxes

您好,我在NetBeans中使用PHP表单更新MySQL时遇到问题,发生的问题是:
通知 :未定义变量:fetched_row在C:\\ XAMPP \\ htdocs中\\ Resume_DB \\ PHP \\ Edication_Edit.php上线75

在我的所有4个文本框中。 我的代码是:

    <?php

    mysql_connect("localhost", "root", "");
    mysql_select_db("cs266db_db1");


    if(isset($_GET['edit_id']))
 {
  $sql_query="SELECT * FROM education Where Edit_Education=".$_GET['edit_id'];
$result_set=  mysql_query($sql_query);
$fetched_row= mysql_fetch_array($result_set);
}

 if(isset($_POST['btn_update']))
 {
//variables for input data
$Class = $_POST['Class'];
$Discipline = $_POST['Discipline'];
$Description = $_POST['Description'];
$Term = $_POST['Term'];


//sql query for update data 
   $sql_query = "UPDATE Education SET Class='$Class',  Discipline='$Discipline', Description='$Description', Term='$Term' WHERE               Education_Edit=".$_GET['edit_id'];



  //sql query execution function

  if(mysql_query($sql_query))
 {
   ?>
<script type='text/javascript'>
   alert('Data Has Been Updated');
   window.location.href='Eduaction.php';
   </script>
    <?php
 }
 else 
{
?>
<script type='text/javascript'>
    alert('Error Occured while Updating Data');
    </script>
    <?php
 }

  //sql query execution function 
}

  if(isset($_POST['btn-cancel']))
 {
header("Location: Education.php");
 }
  ?>

       <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Edit Education</title>

  </head>
  <body>
 <center>

   <div id="header">
    <div id="content">
    <label>Edit Education</label>
    </div>
  </div>
  <div id="body">
  <div id="content">
    <form method="post">
     <table align="center">
    <tr>
   **<td><input type="text" name="Class" placeholder="Class" value="<?php echo $fetched_row['Class']; ?>" required /></td>
   </tr>
    <tr>
    <td><input type="text" name="Discipline" placeholder="Discipline" value="<?php echo $fetched_row['Discipline']; ?>" required /></td>
    </tr>
    <tr>
    <td><input type="text" name="Description" placeholder="Description" value="<?php echo $fetched_row['Description']; ?>" required /></td>
</tr>
    <tr>
        <td><input type="Text" name="Term" placeholder="Term" value="<?php echo $fetched_row['Term']; ?>" required</td>**
    </tr>
<tr>
<td>
<button type="submit" name="btn-update"><strong>UPDATE</strong></button>
<button type="submit" name="btn-cancel"><strong>Cancel</strong></button>
</td>
</tr>
</table>
</form>
</div>

  <div id="footer">
  <div id="content">

  </div>
 </div>

 </center>
 </body>
 </html>

有什么想法吗? 谢谢你们的帮助

问题是仅在设置$ _GET ['edit_id']时才分配fetched_row。 否则它不存在,但是即使未设置$ _GET ['edit_id'],您仍在尝试使用它。

更改

<td><input type="Text" name="Term" placeholder="Term" value="<?php echo $fetched_row['Term']; ?>" required</td>**

至:

<td><input type="Text" name="Term" placeholder="Term" value="<?php echo (isset($fetched_row['Term']))? $fetched_row['Term'] : ''; ?>" required</td>**

似乎在更新查询中使用“ Education_Edit”代替“ Edit_Education”,或者在选择查询中使用“ Edit_Education”代替“ Education_Edit”。

$sql_query="SELECT * FROM education Where Edit_Education=".$_GET['edit_id'];

$sql_query = "UPDATE Education SET Class='$Class',  Discipline='$Discipline', Description='$Description', Term='$Term' WHERE Education_Edit=".$_GET['edit_id'];

将if(isset($ _ POST ['btn_update']))更改为if(isset($ _ POST ['btn_update']))),因为在html button标签中,您将button命名为btn-update。 在更新查询中,将列名Education_Edit更改为Edit_Education

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM