更新形式php/mysql


UPDATE with form 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。

<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");
?>

$id变量必须在使用前声明;——

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

这一行不对

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

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

所以很有可能输入字段没有正确构建,浏览器完全忽略了该字段

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说的,你需要从url
中获取id