2017-03-29 36 views
0

This is table that has all the skills which candidate can add to their profile in candidate table通過它一次刪除的值是該用逗號在一個MySQL表的列分隔位置

And this is where candidate has added desired skills which is separated by comma,

現在我堅持,問題是我怎麼能刪除那些我不技能想再想要在我的個人資料中。這是由逗號這就是分開的,爲什麼我發現它刪除individualy

$sql_r = "select expert_skills, inter_skills, beginner_skills 
      from user_personal_details 
      WHERE upd_user_id = '". $_SESSION["user_id"] ."'"; 

$skills_render = $this->model->execute_query_all($sql_r); 


$arr1=explode(",",$skills_render['0']['expert_skills']); 

$ty = array_keys($arr1); 
$ty1 = array_values($arr1); 

$location = $_POST['skill_location']; 

echo $location; 

$位置變量即技能ID,我是從前端拍攝,我怎麼能按位置

+4

這就是爲什麼你應該正常化您的數據庫... – jeroen

+0

嘗試將數據保存爲JSON數組[看到這裏](https://www.sitepoint.com/use-json-data-fields-mysql-databases/) –

+1

似乎是一種自我傷害給我。現在你仍然知道爲什麼把索引存儲在單列中的逗號分隔列表中 – RiggsFolly

回答

1

您可以使用和array_diff([3,2,1,5],[2])將導致[3,1,5]

+0

謝謝Karthick,這解決了我的問題 – waq

0

刪除您應該規範化數據庫。
或者對於每個刪除操作,更新技能中的整個值。
如果您想單獨刪除一個項目,則需要使用新的一組值更新該字段。
您有1,2,9,10,7,6,8作爲expert_skills。如果您需要刪除9 & 10,則需要將其更新爲1,2,7,6,8。

我假設你沒有刪除畫面,但在其中選擇/取消選擇的技能更新屏幕。

+0

有人可以讓我知道爲什麼上面的答案是投票。我認爲@waq遵循的方法並不是合作的方法。我應該建議更好的選擇。但是,我認爲他已經建立了邏輯。根據他的其他問題,看起來他不是專家。所以,他可能無法很快解決這個問題。這就是爲什麼我回答他的發展方式。如果有人讓我知道投票的理由,那麼我將在未來回答時考慮這些問題。 – manian

+0

因爲充其量只是一個評論。它沒有試圖回答這個問題。 _我應該提出更好的選擇_是的答案應該嘗試提供問題的解決方案並描述已完成的工作以及完成工作的原因 – RiggsFolly

+0

感謝@RiggsFolly的反饋意見。當我發佈我的下一個答案時,我會考慮你的觀點。但我沒有看到2個答案在這裏有很大的區別。一個upvoted和一個downvoted – manian

相關問題