2013-07-31 51 views
0

我有一個JavaScript的循環,發送數組到ajax頁面來更新mysql數據庫。ajax返回成功,但MySQL數據庫未更新

我贊同結果回到原來的頁面,它的回聲是成功的,但是當我檢查數據庫沒有發生任何變化

我的JavaScript的for循環發送陣列

for(var m=0; m<array.length; m++){ 
    $.post("update_page_positions.php",{page_ref:array[m][0], ref:array[m][12], menu_pos:array[m][1], sub_menu_pos:array[m][2], top_menu:array[m][3], pagelink:array[m][4], indexpage:array[m][5], hidden:array[m][6], page_title:array[m][7], page_desc:array[m][8], page_keywords:array[m][9], page_name:array[m][10], deletedpage:array[m][11]},   
     function(data,status){ 
      alert("data="+data+" status="+status); 
});     

這裏是PHP AJAX頁面更新數據庫

<? 
    include("connect.php");  
    $ref = $_POST['ref']; 
    $page_ref = $_POST['page_ref']; 
    $menu_pos = $_POST['menu_pos']; 
    $sub_menu_pos = $_POST['sub_menu_pos']; 
    $top_menu = $_POST['top_menu']; 
    $indexpage = $_POST['indexpage'];  
    $page_name = $_POST['page_name'];  
    $page_title = $_POST['page_title']; 
    $page_desc = $_POST['page_desc']; 
    $page_keywords = $_POST['page_keywords']; 
    $hidden = $_POST['hidden']; 
    $pagelink = $_POST['pagelink']; 
    $deletedpage = $_POST['deletedpage']; 

    $query = mysql_query("SELECT * FROM pages WHERE ref='$ref' AND page_ref='$page_ref'"); 

if(mysql_num_rows($query)==0){ 
    mysql_query("INSERT INTO pages(page_ref, ref, page_name, menu_pos, sub_menu_pos, top_menu, link, indexpage) VALUES('$page_ref','$ref','$page_name','$menu_pos','$sub_menu_pos','$top_menu','$pagelink','$indexpage')"); 
} 

if($deletedpage=="1"){ 
     mysql_query("DELETE FROM pages WHERE ref='$ref' AND page_ref='$page_ref'");   
     mysql_query("DELETE FROM site_content WHERE ref='$ref' AND page_ref='$page_ref'"); 
} 
else{  
     if(mysql_query("UPDATE pages SET menu_pos='$menu_pos', sub_menu_pos='$sub_menu_pos', top_menu='$top_menu', indexpage='$indexpage', page_name='$page_name', page_title='$page_title', desc1='$page_desc', keywords_list='$page_keywords', hidden='$hidden', link='$pagelink' WHERE ref='$ref' AND page_ref='$page_ref'")){ 

     echo "updated!"; 
    } else{ 
     echo "error";   
     } 

} 
?> 

的插入和刪除功能都很好,但UPDATE返回成功語句,但不更新數據庫。

任何人都可以看到什麼問題是?

+0

你可以仔細檢查一下你使用的是同一個數據庫嗎? – Halcyon

+0

一旦你解決了你的問題,你會很好的看​​待清理你的數據:http://stackoverflow.com/questions/129677/whats-the-best-method-for-sanitizing-user-input-with -php –

+0

代碼中存在一個基本問題:您可以從循環中激發多個AJAX調用。由於AJAX調用的異步性質可能導致各種不可預知的問題。你應該重寫你的代碼,使它成爲一個傳遞給整個陣列的AJAX調用。 – ciruvan

回答

1

發佈作爲回答,因爲評論是太難以閱讀:

而不是回送「更新」,嘗試呼應

"UPDATE pages SET menu_pos='$menu_pos', sub_menu_pos='$sub_menu_pos', top_menu='$top_menu', indexpage='$indexpage', page_name='$page_name', page_title='$page_title', desc1='$page_desc', keywords_list='$page_keywords', hidden='$hidden', link='$pagelink' WHERE ref='$ref' AND page_ref='$page_ref'" 

(即你想運行查詢)。

看看是否給你一些線索。

+0

謝謝ref沒有通過 –

0

UPDATE報告成功,但在WHERE子句拒絕更新表中的所有行時不執行任何操作。

也許$ page_ref標識符是正確的(因此DELETE有效),但是完整的$ page_ref和$ ref組合是不是?

相關問題