2017-01-24 18 views
0

私はcakephp 2.0フレームワークを使用しています。私はここで一度に複数の行を保存したい私のデータcakephp2.0に一度に複数の行を保存するには?

enter code here 
[EveAppointmentSlot] => Array 
    (
     [appointment_from_time] => Array 
      (
       [0] => 3:30 PM 
       [1] => 3:30 PM 
      ) 

     [appointment_to_time] => Array 
      (
       [0] => 3:45 PM 
       [1] => 3:45 PM 
      ) 

    ) 

) 

appointment_from_timeゼロ指数は午後3時30分で、appointment_to_timeインデックスはゼロです: - 午後3時45分と他の指標 と同じ私は中のデータを保存したいですこの表 enter image description here

は私がデータをたいとき

enter code here 
appointment_from_ time  appointment_to_time 
3:30 PM       3:45 PM 
3:30 PM       3:45 PM 
ここ

のように保存されたときに今、私はこのコードを使用しているが、正常に動作しません: -

enter code here 
foreach($data['EveAppointmentSlot'] as $k=> $v){ 
       echo $k; 
       foreach($data['EveAppointmentSlot'][$k] as $key=>$value){ 
        $this->EveAppointmentSlot->create(); 
        $this->EveAppointmentSlot->save($value); 
        } 
     } echo "sucess"; die; 
+0

「*正しく動作していない*」とはどういう意味ですか?エラーがありますか?間違った結果?検索結果はありません ? –

+0

まず、そのデータはどのようにして得られますか?それがフォームの形をしたものであれば、そのフォームはポストすぎるでしょう。 –

答えて

0
  1. あなたの構造が

    [EveAppointmentSlot] => Array 
        (
         [0] => Array 
          (
           [appointment_from_time] => 3:30PM, 
           [appointment_to_time] => 3:45PM 
          ) 
         [1] => Array 
          (
           [appointment_from_time] => 3:30PM, 
           [appointment_to_time] => 3:45PM 
          ) 
        ) 
    
  2. また、データを日付データに変換する必要がありますする必要があります。

だから、あなたが既に持っているデータから、これは役立つかもしれない、のは$dataに言わせて:

$new_data = array(); 
    foreach($data['EveAppointmentSlot'] as $attr => $slot) { 
     foreach($slot as $i => $value) { 
      $new_data[$i][$attr] = date('H:i:s', strtotime($value)); 
     } 
    } 

    if($this->EveAppointmentSlot->saveMany($new_data)) { 
     echo 'success'; 
    } 
    else { 
     echo 'failed'; 
    } 
0

最初に保存するデータをフォーマットしてから、すぐにsaveManyを使用してデータを保存する必要があります。

$dataToSave = array(); 
foreach($data['EveAppointmentSlot'] as $k => $d){ 
    $index = 0; 
    foreach($d as $v){ 
     $dataToSave[$index][$k] = date("H:i:s", strtotime($v)); //Convert AM/PM time to 24h format supported by mysql. 
     $index++; 
    } 
} 
if($this->EveAppointmentSlot->saveMany($dataToSave)){ 
    echo "success"; 
}else{ 
    echo "error"; 
} 
+0

が動作しないエラー状態になる – kunal

+0

更新されました。エラーが表示されますか? –

0

あなたの構造は次のようになります。

$new_data[EveAppointmentSlot] = Array 
(
    [0] => Array 
     (
      [appointment_from_time] => 3:30PM, 
      [appointment_to_time] => 3:45PM 
     ) 
    [1] => Array 
     (
      [appointment_from_time] => 3:30PM, 
      [appointment_to_time] => 3:45PM 
     ) 
) 

使用この形式とすべてのレコードを保存しますテーブルに。

if($this->EveAppointmentSlot->saveAll($new_data)) { 
    echo 'success'; 
} 
else { 
    echo 'failed'; 
} 
関連する問題