【问题标题】:How to fetch data from an Array如何从数组中获取数据
【发布时间】:2016-02-01 10:14:44
【问题描述】:

您好,我已经编写了一个类来从数据库中获取数据,并且我正在创建该类的一个实例来获取数据。

当我在我看来使用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' in 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 没有以正确的格式返回数据。

谢谢

【问题讨论】:

  • 您的数组值是否更正 $emp_data
  • 是的,我正在从我的班级填充这个数组..但是它以这种方式填充这个

标签: php arrays oop foreach


【解决方案1】:

mysqli_fetch_array 返回单行。您的循环(在您调用“获取”函数之后)假设您已检索到所有员工。更正你的类函数,如:

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 循环不变。它应该按预期工作。

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 1970-01-01
    • 2022-11-03
    • 2016-12-16
    • 2011-03-10
    • 2017-05-14
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多