0
私は2つのテーブルgoals
,goalscore
を持っています。2つのテーブルにSQLの外部キーの関係でデータを挿入する方法
goals table fields(GoalId,UserId,GoalName,StartDate,EndDate).
GoalId
主キー(自動インクリメント)あります。
goalscore
テーブルで
(GoalScoreId, GoalId, GoalExpected,GoalAchieve, Score)
GoalScoreId(primarykey(auto increment)) GoalId(foreign Key from goals)
今、私はテーブルの両方に同じフォームからのデータを挿入します。 最初の目標テーブルとそのテーブルから私はGoalIdを取得したい、それに応じて同じ目標の関連データをgoalscore
テーブルに挿入する必要があります。
時にはforループを使用して複数のデータをテーブルに挿入しています。最後に私が取ることができないIDを挿入する。オプションはありますか?
解決策を見つけるのを手伝ってください。
コードは、あなたがMySQLで、この目的のために機能last_inserted_idを使用することができます
public function AddNewGoal(){
$userid=$this->session->userdata['loggedin']['userId'];
$Cdate=date('Y-m-d');
$Ldate=date('Y-m-d');
$date = $this->input->post('sdate');
//$freq = $this->input->post('frequency');
$freq= 1;
$kpiId= $this->input->post('kpiname');
$goal = $this->input->post('Goal');
$goaltype = $this->input->post('goaltype');
$targetscore = $this->input->post('target');
$yearEnd = date('Y-m-d', strtotime('12/31'));
//echo $yearEnd; exit();
$mnth= date('m', strtotime('-1 month'));
$m = 12- $mnth;
$q = 12-$mnth;
If($freq==1){
$i=1;
While ($i<= $m)
{
$query = $this->db->query('INSERT INTO goals
(UserId,KPITTemplateItemId,GoalTypeId,GoalStatusId,GoalDesc,StartDate,EndDate,CreatedOn,CreatedBy,LastModifiedOn,LastModifiedBy)
VALUES
(180,1,1,4,"goal","'.$date.'","'.$date.'","'.$date.'","'.$userid.'","'.$date.'","'.$userid.'")');
$i++;
}
}
else if($freq==2){
}
else if($freq==3){
}
else if($freq==4){
}
else if($freq==5){
$query = $this->db->query('INSERT INTO goals
(UserId,KPITTemplateItemId,GoalTypeId,GoalStatusId,GoalDesc,StartDate,EndDate,CreatedOn,CreatedBy,LastModifiedOn,LastModifiedBy)
VALUES
(180,1,1,4,"goal","'.$date.'","'.$date.'","'.$date.'","'.$userid.'","'.$date.'","'.$userid.'")');
}
if($this->db->affected_rows() > 0){
return true;
}else{
return false;
}
}
最初に回答を検索しようとしましたか?これは何度も答えられた基本的なものです。最初に検索してからもう一度お試しください。 – Difster
あなたのコードはどこですか? これらはすべて基本的なものです。ここで何かを試してみると – anuraj
私は試しました。しかし、単一のデータを挿入する場合は、最後に挿入されたIDを使用できます。私の条件では、目標の頻度に基づいて同じデータを複数回挿入しています –