2014-07-06 61 views
0

我有2個表格,損壞和任命。在任命我有領域damage_id和在表損害我有場損傷。我使用GET從另一個頁面中獲取損害ID,並使用一個簡單的表單來獲取委派ID,以便讓用戶將損失與指定相關聯。用php代碼更新錯誤

<?php 
    session_start(); 
    include('dbConfig.php'); 

    if(isset($_POST['submit'])){ 
    $id5=$_GET['damageid']; 
    $apid=$_POST['apid']; 


    $result=mysql_query("UPDATE appoint SET damage_id=$id5 WHERE id=$apid") or die("QUERY error: ".mysql_error()); 
    echo"Row updated."; 
    mysql_close(); 
    } 
    ?> 

    <form action="" method="post"> 
<table> 

<tr> 
<td>ID APPOINTMENT</td> 
<td><input name="apid" type="text"> </td> 
</tr> 
<tr> 
<td><input type="submit" name="submit" value="submit"></td> 
</tr> 
</table> 
</form> 

結果一拿這個錯誤:「查詢錯誤:你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「WHERE ID = 2正確的語法手冊'在第1行「 任何想法?

+0

您的輸入值'id5'是一個字符串,對不對?順便說一句,你的代碼對於SQL注入是開放的。總是逃避你的用戶輸入。 –

+0

它看起來像'$ id5'是空的。你能檢查一下嗎? – Jens

+0

id5是一個int是我從其他頁面上取得的損害! – user3808157

回答

0

您的查詢是錯誤的。

更改此:

$result = mysql_query("UPDATE appoint SET damage_id=$id5 WHERE id=$apid") or die("QUERY error: ".mysql_error()); 

到:

$result = mysql_query("UPDATE appoint SET damage_id = '$id5' WHERE id = '$apid'") or die("QUERY error: ".mysql_error()); 

而且,你說,你從另一頁讓你$_GET參數爲<a href="editdamage.php?id='.$row['damageid'].'">

更改此:

$id5=$_GET['damageid'] 

這樣:

$id5 = $_GET['id'] 

在另一方面,你應該更好地與PDOMySQLi讓你查詢。

+0

我這樣做,它打印行更新,但它不會改變任何東西! – user3808157

+0

你確定'$ id5'不是空的,你可以在查詢前添加'var_dump($ id5)'並在這裏粘貼結果嗎? – Burak

+0

它的NULL,但在其他頁面我有這個parto的代碼:print'​​ EDIT'; – user3808157