[英]cake php insert query in loop
Hello Every one i have a function in controller which is checkout where i am submitting a form. 您好,每个人我在控制器中都有一个功能,它是我提交表单的地方。 But i want to run insert query in a loop on bellow $this->Session->read('Cart') value is 3 but my code insert one record in table if i alert something inside loop it alerts 3 time how can i run insert query 3 time please any one help me. 但是我想在下面的循环中运行插入查询$ this-> Session-> read('Cart')值为3,但是如果我在循环内发出警报,则我的代码在表中插入一条记录,它会发出3次警报插入查询3次,请任何人帮助我。 Thanks in advance. 提前致谢。
public function checkout() {
$this->loadModel("Checkout");
Configure::read();
$aorderno = $this->Checkout->find('all', array('order' => array('Checkout.id' => 'DESC'),'limit' => 1));
$this->set('aorderno',$aorderno);
foreach($aorderno as $order)
{
$myorderno=$order['Checkout']['orderno']+1;
}
$firstname = $this->request->data['checkout']['firstname'];
$this->set('firstname',$firstname);
$lastname = $this->request->data['checkout']['lastname'];
$this->set('lastname',$lastname);
if(count($this->Session->read('Cart'))>0)
{
foreach($this->Session->read('Cart') as $value)
{
$sku=$value['Product']['sku'];
$this->Checkout->save(array('orderno' => $myorderno,'firstname' => $firstname,'lastname' => $lastname'sku' => $sku));
}
}
}
I supposed in your $this->Checkout->saveQuery function. 我应该在您的$ this-> Checkout-> saveQuery函数中。
You are using something like $this->save(); 您正在使用类似$ this-> save();的方法。
Before $this->save(), call $this->create(); 在$ this-> save()之前,调用$ this-> create();。
Hope it helps. 希望能帮助到你。
You can use saveMany 您可以使用saveMany
foreach(.......){
$arr[]= array('orderno' => $myorderno,'firstname' => $firstname,'lastname' => $lastname'sku' => $sku);
}
$this->Checkout->saveMany($arr, array('deep' => true));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.