未初始化的字符串偏移量:0 和非法字符串偏移量


Uninitialized string offset: 0 and Illegal string offset

>我在循环中循环,并且存在错误。我以前试过这个,但现在它不起作用。

我的错误是:


遇到 PHP 错误

严重性:通知

消息:未初始化的字符串偏移量:0

文件名:视图/audit_trail_view.php

行号:36

回溯:

文件: C:''xampp''htdocs''cemo-marikina''application''views''audit_trail_view.php 行: 36 功能: _error_handler

文件: C:''xampp''htdocs''cemo-marikina''application''controllers''Employee.php 行:2819 功能:视图

文件: C:''

xampp''htdocs''cemo-marikina''index.php 行: 292 功能: require_once


遇到 PHP 错误

严重性:警告

消息:非法字符串偏移量"user_id"

文件名:视图/audit_trail_view.php

行号:36

回溯:

文件: C:''xampp''htdocs''cemo-marikina''application''views''audit_trail_view.php 行: 36 功能: _error_handler

文件: C:''xampp''htdocs''cemo-marikina''application''controllers''Employee.php 行:2819 功能:视图

文件: C:''

xampp''htdocs''cemo-marikina''index.php 行: 292 功能: require_once

观点: audit_trail_view.php

<?php 
    $first_name='';
    $last_name='';
    $middle_name='';
    $separator="";
    $user_id="";
    ?>
        <table border ="1" width="75%" >
            <tr>
                <td>User</td>
                <td>Action</td>
                <td>Date</td>
            </tr>
    <?php
    foreach($view as $view){
        $audit_id= $view['audit_id'];
        $audit_user_id= $view['audit_user_id'];
        $audit_record= $view['audit_record'];
        $audit_new_record= $view['audit_new_record'];
        $audit_date= $view['audit_date'];
        $timestamp=strtotime($view['audit_date']);

        $year=date('Y', $timestamp);
        $month=date('M', $timestamp);
        $day=date('d', $timestamp);
        $hour=date('h', $timestamp);
        $minute=date('i', $timestamp);
        $ap=date('a', $timestamp);
        foreach($users as $users){
            $id =$users['user_id'];
            if($id==$audit_id){
                $first_name=$users['fname'];
                $last_name=$users['lname'];
                $middle_name=$users['mname'];
            }
            else{
                $first_name='';
                $last_name='';
                $middle_name='';
            }
        }
    ?>  

        <tr>
            <td><?php echo $last_name." ".$first_name.", ".$middle_name;?> </td>
            <td><?php echo$audit_record.$separator.$audit_new_record;?> </td>
            <td><?php echo$month." ".$day.", ".$year." ".$hour.":".$minute." ".$ap;?> </td>
        </tr>   
    <?php   
    }


?>
    </table>

控制员:员工.php

public function audit_trail_view(){
    $data['view']=$this->emp_model->audit_trail_view();
    $data['users']=$this->emp_model->audit_trail_users();
    $this->load->view("audit_trail_view.php",$data);
}

型号: Emp_model.php

/* AUDIT TRAIL VIEW START*/
    function audit_trail_view(){
        $this->db->select('*');
        $this->db->from('audit_table');
        $query = $this->db->get();
        return $query->result_array();
    }
    function audit_trail_users(){
        $this->db->select('*');
        $this->db->from('users');
        $query = $this->db->get();
        return $query->result_array();
    }
/* AUDIT TRAIL VIEW END*/
/* AUDIT TRAIL START */
    function audit_trail(){
        $data=array(
            'audit_user_id'=>$this->input->post('audit_user_id'),
            'audit_record'=>$this->input->post('audit_record'),
            'audit_new_record'=>$this->input->post('audit_new_record'),
        );
        $this->db->insert('audit_table',$data);
    }
/* AUDIT TRAIL END */   

你的每个似乎很奇怪:

  foreach($users as $users){
        $id =$users['user_id'];
         ....

它不应该更像:

  foreach($users as $user){
        $id =$user['user_id'];
        .....

我确信迭代并分配给相同的变量名称可能会导致意外的数组。

由于您的 foreach 值,您会收到此未初始化字符串偏移量通知,您不能对值使用相同的变量名,否则它将被视为覆盖。

更改这些:

foreach($view as $view_value){
     $audit_id = $view_value['audit_id'];
     .......
}
foreach($users as $user_value){ 
      $id = $user_value['user_id'];
      .....
}