Từ thiết lập của bạn, hãy xem xét user_id
đó là PK tăng tự động:
$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}');
Howerver, như những người khác đã đề cập, bạn có thể nên tìm kiếm một bảng cấp 3:
tbl_users_lang
user_id lang_id
Và chèn thích (ví dụ:không xử lý lỗi, chỉ là một đề xuất)
$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);
}
** Chỉnh sửa **
Cũng giống như một phần thưởng, với truy vấn này, bạn có thể tìm nạp một hàng được phân tách bằng dấu phẩy cho danh sách ngôn ngữ của bất kỳ người dùng nhất định nào. Nghĩ rằng bạn có thể quan tâm:
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%')