Привет, я пытаюсь извлечь записи из моей базы данных, но я продолжаю получать эту ошибку «Тяжесть: предупреждение: недопустимое смещение строки» в нескольких полях.
Вот мой контроллер view_logs.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class View_Logs extends CI_Controller { function View_Logs() { parent::__construct(); } function Logs(){ $id = $this->uri->segment(3); $this->load->model('log_listmodel'); $this->log_listmodel->log_list_get($id); } } ?>
Вот моя модель log_listmodel.php
<?php class Log_Listmodel extends CI_Model{ function Log_Listmodel() { parent::__construct(); } function log_list_get($id){ $query = $this->db->get_where('test_request_log', array('test_request_id' => $id)); //return $query->result(); $results=$query->result_array(); $data['query']=$results[0]; $this->load->view('logs_list_view',$data); } } ?>
Вот моя страница просмотра log_list_view.php
<table class="list_header" bgcolor="#ffffff" border="0" width="1020px" cellpadding="4px"> <?php foreach($query as $row): ?> <tr> <td><b>Updated</b></td> <td><?php echo $row['id'];?>.</td> <td><?php echo $row['new_testing_reason'];?></td> <td><?php echo $row['new_applicant_name'];?></td> <td><?php echo $row['new_authorizer_name'];?></td> <td><?php echo $row['new_received_by'];?></td> <td><?php echo $row['new_test_required'];?></td> <td><?php echo $row['new_laboratory_number'];?></td> <td><?php echo $row['log_date'];?></td> <td><?php echo $row['who'];?></td> </tr> <?php endforeach; ?> </table>
Вы установили $data['query']
в первую строку вашего результата, но в том представлении, которое вы используете, так как оно будет иметь весь набор данных.
Поэтому вам нужно изменить
$data['query']=$results[0];
в
$data['query']=$results;
или
$data['query']=$query->result_array();
Ваш код является недобросовестной структурой, я просто реконструирую его и упрощаю. Надеюсь, что это работает.
Сначала давайте загрузим вашу базу данных.
Перейдите в приложение / config / autoload.php, найдите эту строку, затем загрузите библиотеку базы данных автозагрузки
/* | ------------------------------------------------------------------- | Auto-load Libraries | ------------------------------------------------------------------- | These are the classes located in the system/libraries folder | or in your application/libraries folder. | | Prototype: | | $autoload['libraries'] = array('database', 'session', 'xmlrpc'); */ $autoload['libraries'] = array('database');
Просмотр контроллера
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class View_Logs extends CI_Controller { function View_Logs() { parent::__construct(); $this->load->library('database'); // if you didn`t load 'database' in your autoload.php $this->load->model('log_listmodel'); } function Logs(){ $id = $this->uri->segment(3); $data['query'] = $this->log_listmodel->log_list_get($id)->result(); $this->load->view('logs_list_view',$data); } ?>
Просмотр модели
<?php class Log_Listmodel extends CI_Model{ function Log_Listmodel() { parent::__construct(); } function log_list_get($id){ return $this->db->get_where('test_request_log', array('test_request_id' => $id)); } } ?>
Режим просмотра
<table class="list_header" bgcolor="#ffffff" border="0" width="1020px" cellpadding="4px"> <?php foreach($query as $row): ?> <tr> <td><b>Updated</b></td> <td><?php echo $row->id;?>.</td> <td><?php echo $row->new_testing_reason;?></td> <td><?php echo $row->new_applicant_name;?></td> <td><?php echo $row->new_authorizer_name;?></td> <td><?php echo $row->new_received_by;?></td> <td><?php echo $row->new_test_required;?></td> <td><?php echo $row->new_laboratory_number;?></td> <td><?php echo $row->log_date;?></td> <td><?php echo $row->who;?></td> </tr> <?php endforeach; ?> </table>