2015-03-26 5 views
-1

Я новичок в yii.I создаю одну форму, содержащую сумму и totalamount. У меня уже есть totalamount = 1000 в базе данных. Если я даю значение в сумме, которое он должен добавить с помощью totalamount и хранить его на базе данных. Просто попробуйте это, но значение не сохраняется в базе данных.Как суммировать два значения из базы данных в yii

public function actiontransaction() 
{ 
    $model = new Transactionform; 
    if(isset($_POST['submit'])) 
    { 

     $model->username=$_POST['username']; 
     $model->description=$_POST['description']; 
     $model->amount=$_POST['amount'];  

     $model = Transactionform::model()->findByPK(27); 
     echo $model-> totalamount+$model->amount=$_POST['amount']; 
     $model->transactiondate=$_POST['transactiondate']; 

     if($model->validate()) 
     { 
      if(!$model->save()) // save it here! 
      { 
       // do stuff after successful save 
      } 
     } 

    } 
    $this->render('bankreg',array('model'=>$model)); 
} 

ответ

0

Попробуйте это:

... 
    $amount=$_POST['amount']; //new amount 
    $model = Transactionform::model()->findByPK(27); 
    $model->totalamount = $model->totalamount + $amount; // total = previous + new 
    ... 
+0

если я дать findByPK ($ ID) дает неопределенный id.but я определил все – KanimozhiPalanisamy

+0

я не вижу '$ id' в своем действии. Где это? – hamed

+0

Ваш вопрос был о количестве и суммарном количестве. В чем проблема в моем коде сейчас? – hamed

0

значение не сохраняется, потому что вы не назначая его правильно модели.
Было бы полезно узнать, что у вас есть в $ _POST (надеюсь, что он содержит идентификатор объекта, который вы пытаетесь изменить, поэтому вы можете использовать его в вызове findByPk для извлечения данных из базы данных).
Я пытаюсь изменить код:

public function actionTransaction() 
 
{ 
 
    $model = new Transactionform; 
 
    if(isset($_POST['submit'])) 
 
    { 
 
     $model = Transactionform::model()->findByPK($_POST['id']); 
 
     $model->username = $_POST['username']; 
 
     $model->description = $_POST['description']; 
 
     $model->amount = $_POST['amount']; \t 
 
     $model->totalamount = $model->totalamount + $_POST['amount']; 
 
     $model->transactiondate = $_POST['transactiondate']; \t 
 
\t \t \t 
 
     if($model->validate()) 
 
     { 
 
      if(!$model->save()) // save it here! 
 
      { 
 
       // do stuff after successful save 
 
      } 
 
     } 
 
    } 
 
    \t  $this->render('bankreg',array('model'=>$model)); 
 
}

+0

Я пытаюсь это снова дать неопределенную ошибку id – KanimozhiPalanisamy

+0

вы можете обновить свой вопрос кодом вашего мнения? вы можете попробовать распечатать с помощью var_dump свой $ _POST внутри действия, чтобы просмотреть данные, которые вы отправляете с помощью своей формы – lyisia

0

наконец я получил ответ с помощью этого метода.

$model1=$model->findall(); 
 
      foreach($model1 as $model_amount) 
 
\t \t  $total_amount=$model_amount['totalamount']; 
 
\t \t \t $amount=$_POST['amount']; 
 
\t \t if($model->description=='D') \t 
 
     \t $model->totalamount = $total_amount + $amount;

Смежные вопросы