2012-12-03 139 views
1

我試圖更新表(單),域(檢查),如果用戶選中複選框 場(選中)將數據庫表更新不起作用?

第1頁:detail.php

while($row = mysql_fetch_array($results)) 
{ 
    $ch=$row['checked'] ; 
    $idw=$row['key']; 
} 

然後我檢查,如果用戶之前,檢查該行或不如果不是,我送鑰匙&以託運形式做檢查過程:

if ($ch==1) 
{ 
    echo "this record has been checked"; 
} 
else 
{ 
    echo "<form action=\"checked.php\" method=\"GET\" enctype=\"multipart/form-data\"  >"; 
    echo "<input type=\"hidden\" name=\"ids\" value=\"$idw\" ><br>"; 
    echo "<input type=\"checkbox\" name=\"check\" value=\"checked\" ><br>"; 
    echo "<p><input name=\"submit\" type=\"submit\" value=\"submit\" /></p>"; 
    echo "</form>"; 
} 

第2頁:checked.php

$idw=$_GET['ids']; 
$check=$_GET['check']; 
$sql="UPDATE bill SET checked=1 where key=$idw"; 
$results=mysql_query($sql); 
if ($results) 
{ 
    echo "the record has been updated successfully"; 
} 

更新用沒有工作了,任何幫助,請

+0

請格式化您的代碼。 –

+0

請注意,這段代碼真的不安全。爲了避免sql注入,你應該使用:'$ idw =(int)$ _GET ['ids'];',至少如果GET應該包含一個int值。 – regilero

回答

0

你有你的查詢時出現錯誤嘗試,改變這個:

$sql="UPDATE bill SET checked=1 key=$idw"; 

與此:

$sql="UPDATE bill SET checked=1 WHERE key=$idw"; 
+0

(在哪裏)是在代碼中,但我在寫問題時刪除了它, – Norah

+0

爲什麼?它使SQL代碼無效... –

+0

我剛剛刪除它不正確 – Norah

0

你update語句應該是:

$sql="UPDATE bill SET checked=1 where key=$idw"; 
0

試試這個,如果你

WHERE key='".$idw."' 
0

你缺少在此查詢在SQL語句中的分號做的工作:

$sql="UPDATE bill SET checked=1 where key=$idw;"; 
       // Notice this semicolon here -^ 

此外,如果key是非數字列,則需要將報價放在$idw左右:

$sql="UPDATE bill SET checked=1 where key='$idw';"; 
+0

鍵是主鍵,int類型 – Norah

+0

你瘦我應該將$ idw轉換爲int? – Norah

+0

不,這不是我說的。我說過,如果它不是數字,你需要引用字符串。 –

0

我把一個feild(num)而不是(鍵「P.K」),然後更新完成。 但我仍然不現在爲什麼更新沒有發生取決於P.K

謝謝大家。