sql >> データベース >  >> RDS >> Mysql

データベースの同じ列に行の複数の入力を保存するにはどうすればよいですか?

    このように同じ名前の複数の入力を使用する

    <input name="TitleText[]" />
    <select name="ReadingText[]" >
    ...
    <select name="langWrittingText[]">
    ...
    <select name="SpeakingText[]">
    ...
    

    このようにして、データは配列の形式で投稿されます。すべての入力/選択がユーザーによって入力される必要があると仮定します

    コントローラでは、次のようなことができます

    $count = count($input['TitleText']); // here we will know how many entries have been posted
    $languages = array();
    for($i=0; $i<$count; $i++){
       if(!empty($input['TitleText'][$i])){
         array_push($languages, array( // iterate through each entry and create an array of inputs
          'title' => $input['TitleText'][$i], 
          'reading' => $input['ReadingText'][$i], 
          'writting' => $input['WrittingText'][$i],
          'speaking' => $input['SpeakingText'][$i]
         ));
       }
    }
    Languages::insert($languages); // save the array of models at once
    

    これがお役に立てば幸いです。




    1. CakePHPは、関連するモデル条件のリストを検索します

    2. 記載された値を持つMySQLでIN句を使用する

    3. NOT IN vs NOT EXISTS

    4. MySQLストアドプロシージャを呼び出すときにパケットの順序が正しくないエラー