您好我已经编写了一个从数据库中获取数据的类,并且在视图中我正在创建该类的实例来获取数据。
当我在视图中使用print_r($emp_data)
时,一切似乎都运转良好。它以下列格式返回数据,
Array (
[0] => 1
[emp_id] => 1
[1] => Aftab
[first_name] => Aftab
[2] => Kirmani
[last_name] => Kirmani
[3] => Male
[gender] => Male
[4] => 1
[added_by] => 1
)
但是当我使用foreach
循环时,它会给我一个错误信息。
警告:非法字符串偏移'emp_id' E:\ xampp \ htdocs \ emp_management \ Views \ view_all_employees.php在线 11
以下是我写的代码。
Class Method
public function get_employees(){
$query= "select * from employees";
$query_run= mysqli_query($this->conn, $query);
if(mysqli_num_rows($query_run) > 0){
$data= mysqli_fetch_array($query_run);
return $data;
}
}
View
<?php
include 'header.php';
$employees= new Employees();
$emp_data= $employees->get_employees();
foreach($emp_data as $data){
echo $data['emp_id'];
}
?>
请指导我在这里做错了什么。我认为array
没有以正确的格式返回数据。
由于
答案 0 :(得分:1)
mysqli_fetch_array
返回一行。你的循环(在你称之为&#39; fetch&#39;函数之后)假设你已经检索了所有员工。纠正你的班级功能,如:
public function get_employees(){
$query = "select * from employees";
$query_run = mysqli_query($this->conn, $query);
if(mysqli_num_rows($query_run) > 0){
$data = array();
while ($row = mysqli_fetch_array($query_run) {
$data[] = $row; //this puts all your rows in an array
}
return $data;
}
}
您可以按原样保留View
循环。它应该按预期工作。