2013-11-01 135 views
0

UPDATE查詢正在更新table_2jobResponsibilities場只需插入jobResponsibilities = c00017但我想插入的所有值一樣jobResponsibilities = C00001,C00302,C00303,C00287,C00286,C00285,C00017不僅ĴobResponsibilities = C00017 在一個記錄中獲取多個記錄的更新查詢更新表。根據最後一條記錄

我的代碼如下:

function mySQLSafe($value, $quote = "'"){ 

    // strip quotes if already in 
    $value = get_magic_quotes_gpc() ? stripslashes($value) : $value; 
    $value = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($value) : mysql_escape_string($value); 

    // Stripslashes 
    if (get_magic_quotes_gpc()){ 
     $value = stripslashes($value); 
    } 

    // Quote value 
    if (version_compare(phpversion(), "4.3.0") == "-1") { 
     $value = mysql_escape_string($value); 
    } else{ 
     $value = mysql_real_escape_string($value); 
    } 

    $value = $quote . $value . $quote; 
    return $value; 
} 


$comcode = "SELECT jobCode, compCode 
FROM first_table"; 

$comcode_RS = mysql_query($comcode, $timespace) or die (mysql_error()); 

while($row_comcode_RS = mysql_fetch_assoc($comcode_RS)) 
{ 
    $jobCode = $row_comcode_RS['jobCode']; // more than one record 
    $compCode = $row_comcode_RS['compCode']; // more than one record 

    echo $updateSQL = "UPDATE second_table SET jobResponsibilities=".mySQLSafe($compCode)." WHERE jobCode=".mySQLSafe($jobCode).""; 
    $Result1 = mysql_query($updateSQL, $timespace) or die(mysql_error()); 
} 
+0

感謝的人真的很感謝你的幫助 –

回答

0

使用CONCAT新值追加到列的末尾。

$updateSQL = "UPDATE second_table 
       SET jobResponsibilities = IF(jobResponsibilities = '', " . 
              mSQLSafe($compCode) . ", 
              CONCAT(jobResponsibilities, ',', " . mSQLSafe($compCode) . ")) 
       WHERE jobCode=".mySQLSafe($jobCode); 

但是,這是糟糕的模式設計。包含逗號分隔列的列會使許多數據庫操作變得困難。您應該爲工作職責使用單獨的表格,每個組合的行數爲jobCodecompCode

+0

由於Barmar但它不是爲我工作的顯示錯誤您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第1行附近使用正確的語法來使用'WHERE jobCode ='J0001')'$ updateSQL =「UPDATE excel_test2 SET jobResponsibilities = CONCAT(jobResponsibilities,',',」.mySQLSafe $ compCode)。「WHERE jobCode =」。mySQLSafe($ jobCode)。「)」; –

+0

固定。我遺漏了左括號。 – Barmar

+0

工作對我來說,你是真棒先生非常感謝 –

相關問題