2012-05-14 38 views
0
 <?php 
$id=$_REQUEST['id']; 
$sub=array(); 
$sub=$_REQUEST['sub']; 
$total=0; 
for($i=0;$i<count($sub); $i++) 
    { 
     $total=$total+$sub[$i]; 
    } 
$link=mysql_connect("localhost","root","") or die("Cannot Connect to the database!"); 

mysql_select_db("nps_exam",$link) or die ("Cannot select the database!"); 
$query= "UPDATE four SET 'sub[1]'='".$sub[0]."' , 'sub[2]'='".$sub[1]."' , 'sub[3]'='".$sub[2]."' , 'sub[4]'='".$sub[3]."' , 'sub[5]'='".$sub[4]."' , 'sub[6]'='".$sub[5]."' , 'sub[7]'='".$sub[6]."' , 'sub[8]'='".$sub[7]."' , 'sub[9]'='".$sub[8]."' , 'Music'='".$sub[9]."' , 'Arts'='".$sub[10]."' , 'total'='".$total."' WHERE Registration_no=='".$id."'"; 

     if(!mysql_query($query,$link)) 
     {die ("An unexpected error occured while saving the record, Please try again!");} 
     else 
    { 
     echo "Record updated successfully!";} 
?> 

我是新來php.While更新記錄從這上面的php代碼。我總是得到錯誤信息說時發生意外錯誤,同時節省紀錄,也是我不能讓我的數據updated..please任何幫助..錯誤,同時更新表

+0

用'die(「Error with query:$ query」);'因此我們可以看到查詢的樣子。 – Jhong

+2

sub [1]和sub [2]等不是有效的列名稱。如果這些列的名字真的是這樣命名的,那麼你必須像引用它們那樣引用它們:'sub [1]' –

+0

你的意思是'sub [1]'。如果是這樣的話我想我已經寫了我的代碼 –

回答

1

這樣做:

if(!mysql_query($query,$link)) { 
    die (mysql_error()); 
} else { 
    echo "Record updated successfully!"; 
} 

mysql_error()會給你確切的錯誤信息 - 這個問題可能只是是什麼...連接問題/查詢語法錯誤/丟失數據等

+0

感謝您的回覆我完全按照您的說法進行了操作,但無法找出出現的錯誤消息 - 您在SQL語法中出現錯誤; 'sub [1]'='2','sub [2]'='2','sub [3]'='56'附近使用正確的語法檢查對應於您的MySQL服務器版本的手冊。 ,'sub [4]'='2','sub [5]'='2','sub'at line 1 –

+0

表中的列名爲'sub [1]'到'sub [10]' ? – andrewsi

+0

@bishubohara是什麼列名?錯誤是正確的 - 不能使用方括號作爲列名,而不能用反引號將它們轉義。不是單引號 – ManseUK

2

你需要在WHERE子句從改變:

WHERE Registration_no=='".$id."'  

WHERE Registration_no='".$id."' 
+0

+1這很可能是真正的問題! – ManseUK

+0

也值得讓你的代碼輸出實際的SQL,並將其直接輸入到數據庫中。如果沒有其他的東西,它會告訴你,問題是與SQL還是與數據庫連接有關。 – andrewsi

+0

是的,我已經做到了,但沒有結果。 –