2015-06-21 84 views
1

我想在同一時間的表更新兩個領域,但它不是工作 任何一個可以幫我請更新表中兩個字段同時

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { 
    $updateSQL = sprintf(
     "UPDATE child,list SET child.list_num = list.list_id WHERE child.user_id = list.user_id", 
     GetSQLValueString($_POST['list_num'], "int"), 
     GetSQLValueString($_POST['id'], "int") 
    ); 

    mysql_select_db($database_amar, $amar); 
    $Result1 = mysql_query($updateSQL, $amar) or die(mysql_error()); 

    $updateGoTo = "list_child.php"; 
    if (isset($_SERVER['QUERY_STRING'])) { 
     $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; 
     $updateGoTo .= $_SERVER['QUERY_STRING']; 
    } 
    header(sprintf("Location: %s", $updateGoTo)); 
} 

$colname_edit = "-1"; 
if (isset($_GET['id'])) { 
    $colname_edit = $_GET['id']; 
} 

mysql_select_db($database_amar, $amar); 
$query_edit = sprintf(
    "SELECT * FROM child, list WHERE id= %s",    
    GetSQLValueString($colname_edit, "int") 
); 
$edit = mysql_query($query_edit, $amar) or die(mysql_error()); 
$row_edit = mysql_fetch_assoc($edit); 
$totalRows_edit = mysql_num_rows($edit); 
+0

不工作意味着什麼?你能發佈你的錯誤嗎? –

+6

[請不要在新代碼中使用mysql_ *函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)不再維護它們並被正式棄用。使用mysqli或PDO – PHPhil

回答

0

我試圖查詢其工作完美如

"UPDATE child,list SET child.list_num = list.list_id WHERE child.user_id = list.user_id" 

但我對你的實現有疑問,你爲什麼在這裏使用sprintf?

$updateSQL = sprintf("UPDATE child,list SET child.list_num =      list.list_id WHERE child.user_id = list.user_id ", 
        GetSQLValueString($_POST['list_num'], "int"), 
        GetSQLValueString($_POST['id'], "int")); 

它表明您的要求與您的實施有所不同。要麼你缺少你查詢的一些地方,你要使用參數

GetSQLValueString($_POST['list_num'], "int") and GetSQLValueString($_POST['id'], "int"). 

目前您的查詢就會更新表沒有任何檢查,不服從的sprintf事情。嘗試

$query_edit = sprintf("SELECT * FROM child, list WHERE id= %s",    GetSQLValueString($colname_edit, "int")); 
相關問題