>我在循环中循环,并且存在错误。我以前试过这个,但现在它不起作用。
我的错误是:
遇到 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'];
.....
}