У меня есть этот код в моем проекте:Php Codeigniter, проверка нулевого значения
public function new_inspection_report() {
$NOWdate = new Datetime('now');
$this->check_session();
$this->restrict_ordinary();
$truckno = $this->uri->segment(2);
$data['title'] = "New Inspection Report";
$data['result'] = $this->truck->find_truckbyid($truckno);
$data['regno'] = $data['result']['registrationno'];
$data['odometer'] = $this->truck->validate_odemeter($truckno,$this->input->post('odometerreading'),"mypms_inspection_report");
$data['lastodometer'] = $data['odometer']['odometerreading'];
$data['date'] = $this->truck->validate_date($truckno,$this->input->post('datestarted'),"mypms_inspection_report","date");
$data['lastdate'] = $data['date']['date'];
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters("<div class='row'><div class='col-lg-12'><div class='alert alert-danger alert-dismissable'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button><i class='fa fa-info-circle'></i> ", "</div></div></div>");
$data['validateodometer'] = $this->truck->validate_odemeter($truckno,$this->input->post('odometerreading'),"mypms_inspection_report");
$data['validatedate'] = $this->truck->validate_date($truckno,$this->input->post('datestarted'),"mypms_inspection_report","date");
if($this->form_validation->run('new_inspectionreport') === FALSE) {
$this->load->view('header',$data);
$this->load->view('new_inspection_report',$data);
$this->load->view('footer',$data);
}else{
if($this->input->post('odometerreading') < $data['validateodometer']['odometerreading']) {
$this->session->set_flashdata('success_insert', "4");
redirect(base_url("new-inspection-report/".$truckno));
}else{
if($this->input->post('datestarted') < $data['validatedate']['date']) {
$this->session->set_flashdata('success_insert', "5");
redirect(base_url("new-inspection-report/".$truckno));
}elseif ($this->input->post('datestarted') > $NOWdate)
{
$this->input->post('datestarted') > $NOWdate;
$this->session->set_flashdata('success_insert', "6");
redirect(base_url("new-inspection-report/".$truckno));
}
else
{
$this->truck->insert_inspectionreport($truckno);
$last_id = $this->db->insert_id();
$count = $this->truck->count_inspection_bytruck($truckno);
$this->authentication->watch_dog("Successfully add inspection report with ID ".$last_id,$this->session->userdata('id'));
$this->truck->insert_inspectionno($count,$last_id);
$this->session->set_flashdata('success_insert', "1");
redirect(base_url('new-inspection-report/'.$truckno));
}
}
}
}
Я передаю эти переменные на мой взгляд:
$data['odometer'] = $this->truck->validate_odemeter($truckno,$this->input->post('odometerreading'),"mypms_inspection_report");
$data['lastodometer'] = $data['odometer']['odometerreading'];
$data['date'] = $this->truck->validate_date($truckno,$this->input->post('datestarted'),"mypms_inspection_report","date");
$data['lastdate'] = $data['date']['date'];}
Переменные данные [ «одометр»] Получает последней записи (одометра) в моей базе данных SQL так же, как данные ['date'] (дата).
Таким образом, проблема заключается в том, что '$ data [' lastodometer ']' null и '$ data [' lastdate ']' null (в моей базе данных еще нет записи) Я принимаю ошибку Undefined index: odometerreading
и Message: Undefined index: date
, Как я могу установить мой последний приемник на 0 и lastdate на datetoday, если у меня нет записи на моей дате?
пустых() не проверяет переменное существование, так что это будет все еще производит неопределенные предупреждения индекса. –
Цитата из [Руководство по PHP] (http://php.net/manual/en/function.empty.php): «Предупреждение не генерируется, если переменная не существует. Это означает, что empty() по сути является кратким эквивалентом to! isset ($ var) || $ var == false. "@MarcB Поэтому ваш комментарий неверен. – manniL
Ах да. извиняйтесь ... отредактируйте свой ответ, чтобы я мог удалить downvote. Но учтите, что empty() по-прежнему недостоверен. если тестируемое значение, естественно, «ложно», вы получите ложное срабатывание, например. 'empty ('0')' TRUE, хотя строка имеет ненулевую длину. –