2013-07-29 22 views
0

你好朋友我想更新一個表格中的單元格新內容,但保留了內容。我需要添加新的數據分隔白色逗號或換行符(不相關),保留裏面的數據。MYSQL更新並將值添加到單元格

|id | title | referer| 
|--------------------| 
| 1 | post1 | google | 
| 2 | post2 | yahoo | 
| 3 | post3 | bing | 
| 4 | post4 | google | 

該表應該看起來像這樣添加了新內容。

|id | title | referer   | 
|-------------------------------| 
| 1 | post1 | google,yahoo,bing | 
| 2 | post2 | yahoo,bing,etc | 
| 3 | post3 | bing    | 
| 4 | post4 | google,google  | 

這是我的代碼在我的數據庫中插入新行:

mysql_query("INSERT IGNORE INTO posts (id,title,referer) VALUES (null,'$q','$referer')"); 

什麼是在「引薦」白衣逗號分隔的細胞或換行符添加信息的代碼?

在此先感謝

+1

我會爲引用者創建一個新表。在添加每個引薦來源時,請使用來自第一個表格的標題的ID作爲引薦來源的ID。然後加入這兩個表來獲得所有第一帖的引用者,並使用爆炸來顯示它們 – Brad

+0

你怎麼能從你的表格模式(其中'title'有重複)告訴你想要添加引用者的行? – peterm

+0

是的,我編輯了我的問題 –

回答

1

我不知道你會用怎樣用逗號分隔它們做什麼,除非你想創建一個數組變量和concat他們入單變量和使用mysql's CONCAT功能來更新表格,以保留最後的場數據:

$referes_list = ''; 
foreach ($referers as $referer) { 
    $referes_list .= $referer . ", "; 
} 
UPDATE referers SET referer=CONCAT(referer,'$referes_list') WHERE id='$id' ; 
+0

mysql_query('UPDATE posts SET referer = concat(referer,',',$ refkey)WHERE id ='$ id'「);此代碼發送錯誤:解析錯誤:語法錯誤,意外T_VARIABLE –

+0

好吧,更新並測試它是否有效! – goseo

+0

謝謝,你的新更新說:爲foreach提供的無效參數() –

0

你得原諒我,如果我的MySQL技能是不是最大的,但我會在這裏做的是簡單地得到的電流值,逗號和新值追加到它,然後更新單元格。

...或者我誤解了你的問題嗎?

+0

是的,是我需要的,但這個命令不適用於我 mysql_query(「更新職位設置referer = referer +'$ newref'其中id ='$ id'」); –

0

在mysql中,不存在「逗號分隔類型」,這只是一個簡單的字符串或VARCHAR,因此,您需要獲取以前的數據並將其像PHP中的字符串連接起來,然後進行更新。

0

我認爲你正在尋找的東西,如:

update t 
    set referrer = (case when referer is null or referer = '' 
         then @newvalue 
         else concat(referer, ',', @newvalue) 
        end) 
    where id = @id; 
+0

什麼應該是php代碼(mysql_query)? –

0

mysql_query('UPDATE tablename SET referer = concat(referer,", '.$value.'") where id="'.$id.'")'; 這應該這樣做,這是未經測試,但。

相關問題