आपके सेटअप से, उस user_id
. पर विचार करते हुए एक ऑटो इंक्रीमेंट PK है:
$user_name = mysql_real_escape_string($_POST['user_name']);
$user_lang = mysql_real_escape_string(implode(',', $_POST['user_lang']);
$sql = "INSERT INTO tbl_users (`user_name`, `user_lang`) VALUES ('{$user_name}', '{$user_lang}');
हाउवर, जैसा कि अन्य ने उल्लेख किया है, आपको शायद 3 स्तरीय तालिका की तलाश करनी चाहिए:
tbl_users_lang
user_id lang_id
और जैसे डालें (उदाहरण के लिए, कोई त्रुटि प्रबंधन नहीं, केवल एक सुझाव)
$user_name = mysql_real_escape_string($_POST['user_name']);
$sql = "INSERT INTO tbl_users (`user_name`) VALUES ('{$user_name}');"
mysql_query($sql);
$user_id = mysql_insert_id();
foreach ($user_lang as $lang) {
$lang = mysql_real_escape_string($lang);
$sql = "INSERT INTO tbl_users_lang (`user_id`, `lang_id`) VALUES ({$user_id}, '{$lang}');"
mysql_query($sql);
}
** संपादित करें **
बोनस के रूप में, इस क्वेरी के साथ, आप किसी दिए गए उपयोगकर्ता की भाषा सूची के लिए अल्पविराम से अलग की गई पंक्ति प्राप्त कर सकते हैं। सोचा कि आपकी रुचि हो सकती है :
SELECT DISTINCT u.user_id, u.user_name, GROUP_CONCAT(l.lang_name)
FROM `tbl_users` as u
LEFT JOIN `tbl_users_lang` as ul ON u.user_id = ul.user_id
LEFT JOIN `tbl_language` as l on ul.lang_id = l.lang_id
-- add WHERE clause here to filter (ex : WHERE u.user_name LIKE 'John%')