用表单php / mysql更新

时间:2014-03-20 13:53:19

标签: php mysql

我在网上找到了这个代码,现在我试图让它工作。当我从第一页按下编辑时出现错误。

Notice: Undefined variable: id in edit_form2.php on line 19

我不确定为什么这个变量不包含在代码中,它应该放在哪里?或者它与我的桌子有什么关系?

Database = album 
Table = data_employees

1. id         primaray key & a_i
2. name
3. address

当我按下编辑按钮时,下一页应该加载数据库中的现有数据。现在它只是空了+我写的错误代码。我该怎么办?

edit.php

<td align="center">DATA</td>
</tr>
<tr>
<td>
  <table border="1">
  <?php
  include"dbinc.php";//database connection
  $order = "SELECT * FROM data_employees";
  $result = mysql_query($order);
  while ($row=mysql_fetch_array($result)){
    echo ("<tr><td>$row[name]</td>");
    echo ("<td>$row[employees_number]</td>");
    echo ("<td>$row[address]</td>");
    echo ("<td><a href=\"edit_form2.php?id=$row[employees_number]\">Edit</a></td></tr>");
  }
  ?>
  </table>

edit_form2.php

  <?php
  include "dbinc.php";//database connection
  $order = "SELECT * FROM data_employees 
            where employees_number='$id'";
  $result = mysql_query($order);
  $row = mysql_fetch_array($result);
  ?>
  <form method="post" name=form action="edit_data2.php">
  <input type="hidden" name="id" value="<?php echo "$row[employees_number]"?>">
    <tr>        
      <td>Name</td>
      <td>
        <input type="text" name="name" 
    size="20" value="<?php echo "$row[name]"?>">
      </td>
    </tr>
    <tr>
      <td>Address</td>
      <td>
        <input type="text" name="address" size="40" 
      value="<?php echo "$row[address]"?>">
      </td>
    </tr>
    <tr>
      <td align="right">
        <input type="submit" 
      name="submit value" value="Edit">
      </td>
      </tr>
      </form>

edit_data2.php

<?php
//edit_data.php
include "dbinc.php";

$name = $_POST["name"];
$address = $_POST["address"];
$id = $_POST["id"];

$order = "UPDATE data_employees 
      SET name='$name', 
          address='$address' 
      WHERE 
      employees_number='$id'";
mysql_query($order);
header("location:edit.php");
?>

3 个答案:

答案 0 :(得分:0)

必须在使用前声明

$id变量;像 -

$id = mysql_real_escape_string($_GET['id']);

答案 1 :(得分:0)

此行错误

<input type="hidden" name="id" value="<?php echo "$row[employees_number]"?>">

尝试

<input type="hidden" name="id" value="<?php echo $row['employees_number']?>">

因为输入字段无法正确构建,所以很可能浏览器完全忽略该字段。

答案 2 :(得分:0)

<强> edit.php

替换

echo ("<tr><td>$row[name]</td>");
echo ("<td>$row[employees_number]</td>");
echo ("<td>$row[address]</td>");
echo ("<td><a href=\"edit_form2.php?id=$row[employees_number]\">Edit</a></td></tr>");

echo "<tr><td>".$row['name']."</td>";
echo "<td>".$row['employees_number']."</td>";
echo "<td>".$row['address']."</td>";
echo "<td><a href=\"edit_form2.php?id=".$row['employees_number']."\">Edit</a></td></tr>";

<强> edit_form.php

<form method="post" name=form action="edit_data2.php">
  <input type="hidden" name="id" value="<?php echo "$row[employees_number]"?>">
    <tr>        
      <td>Name</td>
      <td>
        <input type="text" name="name" 
    size="20" value="<?php echo "$row[name]"?>">
      </td>
    </tr>
    <tr>
      <td>Address</td>
      <td>
        <input type="text" name="address" size="40" 
      value="<?php echo "$row[address]"?>">
      </td>
    </tr>
    <tr>

应该是

 <?php
    $id = mysql_real_escape_string($_GET['id']);include "dbinc.php";//database connection
   $order = "SELECT * FROM data_employees 
        where employees_number='$id'";
   $result = mysql_query($order);
   $row = mysql_fetch_array($result);
 ?>

    <form method="post" name=form action="edit_data2.php">
      <input type="hidden" name="id" value="<?php echo $row['employees_number']; ?>">
        <tr>        
          <td>Name</td>
          <td>
            <input type="text" name="name" 
        size="20" value="<?php echo $row['name']; ?>">
          </td>
        </tr>
        <tr>
          <td>Address</td>
          <td>
            <input type="text" name="address" size="40" 
          value="<?php echo $row['address']; ?>">
          </td>
        </tr>
        <tr>
和Mukesh Soni说的一样,你需要从网址中获取te id

相关问题