2013-03-28 27 views
0

我幾乎沒有編程經驗,並嘗試這第一個項目,我有點卡住如何更新數據庫,所以我點擊編輯和正確的記錄被加載到編輯屏幕更新.phpPHP的形式:不更新mysql數據庫

當我點擊更新時,我收到updated.php的消息說數據庫已更新,但數據庫沒有更新,當我顯示記錄時它們與更新前相同,謝謝提前爲您提供所有幫助。

下面的代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title>Form Edit Data</title> 
</head> 

<body> 
    <table border=1> 
    <tr> 
     <td align=center>Form Edit Employees Data</td> 
    </tr> 
    <tr> 
    <td> 
     <table> 
     <? 
     $user_name = ""; 
     $password = ""; 
     $database = ""; 
     $server = "localhost"; 

     mysql_connect($server, $user_name, $password); 
     $db_found = mysql_select_db($database); 
     $id = $_GET['id']; 
     $order = "SELECT * FROM MY_ID where ID = ' " .$id . " ' "; 
     $result = mysql_query($order); 
     $row = mysql_fetch_array($result); 
     ?> 
     <form method="post" action="edit_data.php"?id=<?= $id ?>> 
      <input type="text" name="id" value="<? echo "$row[ID]"?>"> 
      <tr>   
       <td>First Name</td> 
       <td> 
        <input type="text" name="FirsName" size="20" value="<? echo "$row[FirstName]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td>Sur Name</td> 
       <td> 
        <input type="text" name="SurName" size="40" value="<? echo "$row[SurName]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td>Address</td> 
       <td> 
        <input type="text" name="Address" size="40" value="<? echo "$row[Address]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right"> 
        <input type="submit" name="submit" value="submit"> 
       </td> 
      </tr> 
     </form> 
     </table> 

    </td> 
    </tr> 
    </table> 
</body> 
</html> 

,這裏是另一個文件

<?php 
$user_name = ""; 
$password = ""; 
$database = ""; 
$server = ""; 

mysql_connect($server, $user_name, $password); 
$db_found = mysql_select_db($database); 

$id = $_REQUEST['ID']; 
$FirstName = trim(mysql_real_escape_string($_POST["FirstName"])); 
$SurName = trim(mysql_real_escape_string($_POST["SurName"])); 
$Address = trim(mysql_real_escape_string($_POST["Address"])); 

$sql = "UPDATE MY_ID SET FirstName='$FirstName',SurName='$SurName',Address='$Address' WHERE ID='$id'"; 
$result=mysql_query($sql); 


if ($result){ 
    echo "Successful"; 
    echo "<BR>"; 
    echo "<a href='edit.php'>View result</a>"; 
} 
else { 
    echo "ERROR"; 
} 

?> 

回答

0

看起來你忘了雙引號與句號。你應該把它作爲寫:「‘$例子。’」

$sql = "UPDATE MY_ID SET FirstName='".$FirstName."',SurName='".$SurName."',Address='".$Address.:' WHERE ID='".$id."'"; 
0

這是因爲你的形式方法是POST,和你想GET ID。 可能的ID返回null。 我的建議是把一個隱藏的輸入您的形式與name="ID",然後閱讀它在你的發佈頁面$_POST["ID"];

0

是,答案是Mansours說。你不應該使用單個配額到你的變量。

所以,這是不好的做法編寫代碼是這樣的:

<input type="text" value="<?php echo "$row[name]"; ?>"> 

應該

<input type="text" value="<?php echo $row['name']; ?>"> 

這將是明確的,而且,插入或更新記錄時,你應該寫如下:

$sql = "UPDATE MY_ID SET FirstName='" . $FirstName . "', 
         SurName='" . $SurName . "', 
         Address='" . $Address . "' 
     WHERE ID='" . $id . "'"; 
mysql_query($sql);