2011-09-09 164 views
0

我有這個數據庫方案:http://i54.tinypic.com/k9hzc.pngPHP - 更新單細胞WHERE細胞

正如你所看到的,我有三列(ID,settings_name,settings_value)

在我的網站,我有一個表格。雖然,我在更新SINGLE單元格時遇到問題。例如:

  $sitename = inputFilter($_POST['sitename']); 
     $sitedescription = inputFilter($_POST['sitedescription']); 
     $siteurl = inputFilter($_POST['siteurl']); 
     $siteemail = inputFilter($_POST['siteemail']); 
     $maintenance = inputFilter($_POST['maintenance']); 
     $maintenance_text = inputFilter($_POST['maintenance_text']); 
     $activitylimit = inputFilter($_POST['activitylimit']); 


     //No error found, save the users settings. 
     mysql_query("UPDATE settings SET settings_value='$sitename', sitedescription='$sitedescription', siteurl='$siteurl', siteemail='$siteemail', maintenance='$maintenance', maintenance_text='$maintenance_text', activitylimit='$activitylimit'") 
     or die(mysql_error()); 

正如你可以看到,這裏的錯誤是沒有命名的「網站名稱,主頁等」一欄,雖然有細胞被命名此。

我的問題是,我如何更新前。 「sitename」從表單提交的值?

回答

0
foreach($_POST as $key => $value) 
{ 
    $value = inputFilter($value); 
    mysql_query("UPDATE settings SET settings_value='$value' where setting_name='$key' limit 1") 
     or die(mysql_error()); 
} 

這是最快的方法,它會從窗體更新任何鍵。

+0

謝謝!這工作。 –

0

創建一個數組,其中每個數組鍵都是字段名稱。

UPDATE settings SET settings_value='submiten value'

0

UPDATE settings SET settings_value = '$sitename' WHERE setting_name = 'sitename';

然後,當然,你能爲別人做::

UPDATE settings SET settings_value = '$sitedescription' WHERE setting_name = 'sitedescription';

$valid_data = array(
    'settings_value' => inputFilter($_POST['sitename']), 
    'sitedescription' => inputFilter($_POST['sitedescription']), 
    // etc ... 
); 

foreach ($valid_data as $k => $v) 
    $values[] = $k.'=\''.$v.'\''; 
if (!empty($values) 
    mysql_query("UPDATE settings SET ".join(',', $values)); 
如果您提交的 「網站名稱」 查詢變得