@LP-DIMAN

Почему цикл вносить пять раз одни и те же значения?

public function edit_rating($id,$dateid,$obj){
         

	       		$result = $this->get_pupils($id);
	           	$pupils = array();
	           	foreach ($result as $pupil) 
           		$pupils[] = $pupil['id_user'];

        
           	for($i=0,$j=0;$i<count($pupils),$j<count($this->input->post('rating[]'));$i++,$j++){

					
			

						$this->db->where('id_journal',$id);
						$this->db->where('id_object',$obj);
						$this->db->where('id_pupil',$pupils[$i])
						$this->db->where('date',$dateid);
						$this->db->set('rating',$this->input->post("rating[$j]"));
						$this->db->update('view_journal');
						
					
					}
           }


Код код должен обновлять оценки 5 ученикам, но это не суть. Проблема в том, что в бд он вносит 5 раз данные о последнем ученике. Допустим, у нас ученики:Вася,Петя,Маша,Федя и Ваня. У них оценки: 5,4,3,2,1. Функция должна внести в бд 5 этих учеников и их оценки. Но она внесет только 5 раз Ваню и 1 соответственно. var_dump выдают правильные данные . Не пойму, где косяк
Перед этим писал похожую функцию вставки данных. Все работает
  • Вопрос задан
  • 277 просмотров
Пригласить эксперта
Ответы на вопрос 2
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
У вас к кода бардак. Вы не понимаете что там происходит, мы тем более.
Тем не менее:
1) Вы используете слово "внести", что скорее всего $this->db->insert, а не $this->db->update
2) Реализация $this->db не понятна, похоже что вы 5 раз переназначаете where и set для 5 запросов update, а выполнение самих запросов вызывается где то ещё. Возможно у вас должно быть, что то вроде:
$db = $this->db->getNewInstance(); // возможно  $db = $this->db->update('view_journal');
    $db->where('id_journal', $id);
    $db->where('id_object', $objectID);
    $db->where('id_pupil', $pupilID);
    $db->where('date', $date);
    $db->set('rating', $rating);
    $db->update('view_journal');
    $db->exec();
Ответ написан
Thelema
@Thelema
Если var_dump в цикле выдает правильные результаты, то ищи ошибку в методах $this->db
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы