2013-05-18 160 views
2

我有一個鏈接進行更新<a href='test.php?action=edit&id=$id'>Edit</a>如果選擇的動作是編輯

如果此鏈接用戶點擊顯示的更新形式,他/她更新

$action=="edit";

是行動perfomed在這種情況下,它必須更新,但它不在代碼

if ($action == "edit"){ 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email = $_POST['email']; 

    $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' where id = '$id'"); 
    $sql = mysql_query($result) or die (mysql_error()); 
} 
sql=mysql_query("select * from user where id='$id'"); 

    while ($row=mysql_fetch_array($sql)) 
{                                                              
$id = $row['id']; 
$first_name = $row['first_name']; 
$last_name = $row['last_name']; 
$email = $row['email']; 
       $result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id=$id"); 
       $sql = mysql_query($result) or die (mysql_error()); 

ho("<form name='edit' method='post' action='?action=edit'>"); 
echo("<input type='hidden' name='?action=edit'>"); 
echo("<table class=main cellspacing=0 cellpadding=5 width=50%>"); 
echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>"); 
echo("<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>"); 
echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>"); 
echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>"); 
echo("</table>"); 
} 
} 

有沒有辦法讓這個查詢返回一個值因爲現在它似乎不workng ...

林懷疑這條線

$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id=$id"); 
        $sql = mysql_query($result) or die (mysql_error()); 

原因,如果我加入

where id = '$id' 

它ruturns您的SQL語法錯誤;檢查被刪除

where id = $id 

返回「查詢是空的,」我需要幫助的Ive對應於您的MySQL服務器版本在線路附近使用「1」 1

正確的語法手冊這方面的工作是不工作的權利

+0

歡迎來到Stack Overflow! [**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

1

取而代之的是:

$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' where id = '$id'"); 
$sql = mysql_query($result) or die (mysql_error()); 

你應該只是這樣做:

$sql = "UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' where id = '$id'"); 
mysql_query($sql) or die (mysql_error()); 
+0

這個作品謝謝你,但仍然不能更新錯誤已經沒有任何建議? – Sizwe

+0

-1爲了不指出明顯的SQL注入漏洞。 –

0

執行下列任一下列的:

變化

if ($action == "edit"){ 

if ($_GET['action'] == "edit"){ 

,並刪除

echo("<input type='hidden' name='?action=edit'>"); 

UPADTE

測試此,而不是你的代碼:

if ($_GET['action'] == "edit"){ 
    if ($_POST['performEdit'] == 'Yes') { 
     $first_name = $_POST['first_name']; 
     $last_name = $_POST['last_name']; 
     $email = $_POST['email']; 
     $id = $_POST['id']; 
     $result=mysql_query("UPDATE `user` SET `first_name`='$first_name', `last_name`='$last_name', `email`='$email' WHERE `id` = '$id'"); 
     if(!$result){ 
      echo mysql_error(); 
     } 
    } 
    $row=mysql_fetch_array(mysql_query("SELECT * FROM `user` WHERE `id`='$id' LIMIT 0, 1")); 
    $id = $row['id']; 
    $first_name = $row['first_name']; 
    $last_name = $row['last_name']; 
    $email = $row['email']; 

    echo "<form name='edit' method='post' action='test.php?action=edit'> 
      <input type='hidden' name='performEdit' value='Yes'> 
      <input type='hidden' name='id' value='$id'> 
      <table class=main cellspacing=0 cellpadding=5 width=50%> 
       <tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr> 
       <tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr> 
       <tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr> 
       <tr><td></td><td><div align='right'><input type='submit'></div></td></tr> 
      </table> 
     </form>"); 
} 

一般來說,不要使用MySQL的了,使用的MySQLi代替。

+0

Itworkd現在仍然沒有更新, – Sizwe

+0

爲什麼我刪除這個回聲(「」); ? – Sizwe

+0

因爲你已經發送'action'參數在'echo(「

」);' – SAVAFA