【发布时间】:2015-11-10 15:17:59
【问题描述】:
所以我几天来一直在尝试弄清楚如何分别更新每一行,但我无法弄清楚。这是我第一次使用php,对于丑陋的代码感到抱歉。
我似乎可以从每一行中提取信息,但更新不起作用,但是它会发送地址栏中所有行的所有数据
<html>
<head>
<title>EDIT Patient data</title>
</head>
<body>
<br>
<a href="Patients.php">Edit Patients</a><br>
<a href="PatientRequest.php">Patient Request</a><br>
<a href="PatientConfirmed.php">Booked Patients</a>
<?php
include 'connect.php';
$sql = "SELECT * FROM patients;";
$result = mysql_query($sql);
$num_of_row = mysql_num_rows($result);
if (isset($_GET['submit'])) {
$id = $_GET['did'];
$fname = $_GET['dfname'];
$lname = $_GET['dlname'];
$email = $_GET['demail'];
$phone = $_GET['dphone'];
$address = $_GET['daddress'];
$query = mysql_query("update patients set fName='$fname', lName='$lname', email='email', phone='$phone', address='$address' where patientID ='$id'");
}
echo "<table border=1>";
echo " <tr> <td> Patient ID </td> ";
echo "<td> First name </td>";
echo "<td> last name </td>";
echo "<td> email </td>";
echo "<td> phone number</td>";
echo "<td> address </td>";
echo "<td> date of birth </td> ";
echo "<td> update </td></tr>";
while($row = mysql_fetch_assoc($result))
{
echo "<tr> <form class='form' method='get'>";
echo "<td> <input type='text' name='did' value='".$row['patientID']."' readonly /></td>";
echo "<td> <input type='text' name='dfname' value ='".$row['fName']."' /></td>";
echo "<td> <input type='text' name='dlname' value = '".$row['lName']."' /></td>";
echo "<td> <input type='text' name='demail' value = '".$row['email']."' /></td>";
echo "<td> <input type='text' name='dphone' value ='".$row['phone']."' /></td>";
echo "<td> <input type='text' name='daddress' value ='".$row['address']."' /></td>";
echo "<td> <input type='text' name='ddob' value ='".$row['dob']."' readonly /></td>";
echo "<td> <input class='submit' type='submit' name='submit' value='update' /> </td> </tr>";
}
?>
</body>
</html>
【问题讨论】:
-
不要使用
mysql_*,而是使用mysqli_*或PDO,因为mysql_*已被弃用,在PHP 7中它将被删除。 -
首先,对这些类型的表单提交使用 $_POST 而不是 $_GET。将
$_GET替换为$_POST并将method='get'更改为method='post' -
好的,所以我已经改变了它,但它仍然没有更新,就像我说我在这方面有点菜鸟,所以如果它是简单的,我很抱歉