Conot Insert Multiple Records To Db

[b][size="6"]

PLEASE HELP[/size][/b]

Insert Only Last Row

In purchase item array such as

[size="5"][size="4"]Array ( [0] => Array ( [itemid] => 4 [uomid] => 1 [rate] => 30 [quantity] => 122 [typid] => 1 ) [1] => Array ( [itemid] => 5 [uomid] => 3 [rate] => 300 [quantity] => 32 [typid] => 1 ) [2] => Array ( [itemid] => 6 [uomid] => 3 [rate] => 33 [quantity] => 32 [typid] => 1 ) )[/size][/size]

Only insert last array

In My Model




public function actionCreate()

	{

		$a=new PurchaseItem;

                 $b=new PurchaseHdr;

    

		if(isset($_POST['PurchaseItem'], $_POST['PurchaseHdr']))

    		{

			

			if(isset($_POST['PurchaseItem']))

    				{

       					 	$valid=true;

							

							echo "<h1>".count($_POST['PurchaseItem']); 

							print_r($_POST['PurchaseItem']);

							echo "</h1>";

							//exit;

        					foreach($_POST['PurchaseItem'] as $key=>$value) 

							{

        				   

						  

            				

							

               				$a->attributes=$value;

							

							$a->save(false);

            				

        					}

        //print_r($a);

						//if($valid)  

//							{// all items are valid

//            // ...do something here

//			

//							print_r($a);

//			

//							}			

    				}

	

	

			


			

	

        

        $b->attributes=$_POST['PurchaseHdr'];

	

       $valid=$b->validate() && $valid;

 

        if($valid)

        {

            // use false parameter to disable validation

          

		   

           $b->save(false);

		   //$a->save(false);

            // ...redirect to another page

        }

		

		 

		

    }

 

    $this->render('create', array(

        'a'=>$a,

        'b'=>$b,

    ));

}

	//}




[size="5"]I print the $a=>attributes, then see all saves id are same, such as

[/size]

Array ( [itemid] => 4 [uomid] => 1 [rate] => 30 [quantity] => 12 [typid] => 1 [id] => [size="6"][id] => 26[/size] [added_on] => [edited_on] => )

Array ( [itemid] => 6 [uomid] => 3 [rate] => 33 [quantity] => 23 [typid] => 1 [size="6"][id] => 26[/size] [added_on] => [edited_on] => )

Array ( [itemid] => 5 [uomid] => 3 [rate] => 300 [quantity] => 344 [typid] => 1 [size="5"][id] => 26 [/size][added_on] => [edited_on] => )

Yes ofcourse b/c you are creating object ONE time and assigning value again and again

You have to create your OBJECT inside this loop again to assign different Value… TRY this, its work for me!!!

foreach($_POST[‘PurchaseItem’] as $key=>$value)

{

// create object here

[color="#0000FF"][font="Impact"]$aNew=new PurchaseItem;[/font]

&#036;aNew-&gt;attributes=&#036;value;

$aNew->save();[/color]

$a->attributes=$value;

$a->save(false);

    					}