2015-11-10 92 views
-1

所以我一直在想幾天來弄清楚我可以如何分別更新每一行,我無法弄清楚。這是我第一次使用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> 
+2

不要使用'mysql_ *',而是使用'mysqli_ *'或PDO,因爲'mysql_ *'已被棄用,並且在PHP 7中它將被刪除。 – BRoebie

+2

要開始,請使用$ _POST而不是$ _GET來處理這些類型的表單提交。用'$ _POST'替換'$ _GET'並將'method ='get''改爲'method ='post'' – davidandrew

+0

好吧,我已經改變了它,但它仍然沒有更新,就像我說的我有點在這樣的一個noob的,所以我很抱歉,如果它是簡單的 – Tfish

回答

0

如果要更新單個行,你必須把<form>在你的while循環,如下所示:

echo "<form action='' method='GET'>"; 
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>"; 
} 
echo "</form>"; 

形式將允許輸入字段根據窗體的方法(GET和POST)是提交。

1

您的用戶是否具有更新權限?

如果沒有你需要使用GRANT UPDATE ON *.* TO 'User'@'Host';

但是,你應該使用庫MySQLi像MySQL已經過時了。您還應該查看參數化查詢和MySQL注入,值得了解!

+0

我在哪裏做這個? – Tfish

+0

在MySQL shell或phpmyadmin中?你在使用哪一個? – TomJ