Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

masukkan beberapa nilai dalam satu atribut

Dari pengaturan Anda, dengan mempertimbangkan user_id adalah PK kenaikan otomatis :

$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}');

Namun, seperti yang telah disebutkan orang lain, Anda mungkin harus mencari tabel 3 level :

tbl_users_lang
user_id    lang_id

Dan masukkan suka (misalnya, tidak ada penanganan kesalahan, hanya saran)

$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);       
}

** Sunting **

Sebagai bonus, dengan kueri ini, Anda dapat mengambil baris yang dipisahkan koma untuk daftar bahasa pengguna tertentu. Mungkin Anda tertarik :

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%')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Saya mendapatkan hasil ganda dari kueri mysql saat menggunakan karakter internasional, yaitu /Ä=A &=O,

  2. Kelompokkan berdasarkan pengguna dan tampilkan yang terbaru di MYSQL tidak berfungsi

  3. Bagaimana cara membuat PEMICU di SEQUELIZE (nodeJS)?

  4. Bagaimana cara mengganti kemunculan substring terakhir di MYSQL?

  5. bagaimana cara menyimpan nilai enum ke DB dengan Hibernate?