2014-03-03 47 views
0

我真的不知道從哪裏開始的這一個。我已經研究了幾天的代碼,並且似乎無法找到任何插入已有代碼的東西。MySQL的更新用戶信息保存空

我覺得就是我想要做的是非常基本的;允許用戶通過刪除其內容並將其保存爲空白值來更新配置文件字段。因此,當它是空白的,我有另一個代碼,如果它是空白,選擇不顯示該特定信息。

此時,現場開始空白,如果他們留空白,在註冊保持空白,但如果在任何時候,他們保存的一些信息,信息是永遠存在的。如果刪除它並更新配置文件,則刪除的相同信息仍會顯示。

我有,所以我有一個很難縮小的代碼,我需要修改,以允許空值保存部分,共同努力幾個文件。我發現什麼看起來像一個通用的函數來更新領域 - 這是不針對任何一個領域(FNAME,LNAME,電子郵件等)。

function updateUserField($username, $field, $value){ 
    $q = "UPDATE ".TBL_USERS." SET ".$field." = '$value' WHERE username = '$username'"; 
    return mysql_query($q, $this->connection); } 

我會以爲這是我需要編輯,讓即使是空白將被保存字段代碼的一部分,但我不知道是什麼格式的:

if (empty 

到地方以及它如何被放置在這個特定的代碼片段中。

+0

echo $ q =「UPDATE」.TBL_USERS。「SET」。$ field。「='$ value'WHERE username ='$ username'」;什麼是節目?而'$ value'和'$ username'是字符串不可變的。 –

回答

0

通過使用""(空字符串)而不是使用NULL在db中顯示一個空單元格,可以簡化操作。通過這種方式,要覆蓋瀏覽器窗體緩存以及顯示內容時(如果它是一個NULL或不... FE檢查)沒有其他的行動是必需的。

處理表單數據時,如果該字段沒有填充數據,$ _POST [「field」]將返回一個""

此外,您可以通過將查詢分組到一個來減少數據流量。下面是一個例子,如果你有三個字段。

$q = "UPDATE ".TBL_USERS." SET ".$field_1." = '$value1', ".$field_2." = '$value2', ".$field_3." = '$value3' WHERE username = '$username'"; 

或者使用一個數組,並將其與上面的查詢傳遞給該函數。

+0

這段代碼對於所有的字段來說都是通用的。我對每個領域都沒有一個,只是這個領域顯然適用於所有領域,目前我有大約26個領域。這個代碼的含義是每當你更新信息時,你都使用多個文件中的多個命令; session.php,process.php&database.php。對我來說,確定這個「留下空白」命令應該去哪裏,應該看起來像什麼以及在哪裏插入它是很困難的。我搞砸了一些變化和一些我在這個論壇和網絡上發現的一些變化,我沒有找到一個可行的解決方案。 – David