【问题标题】:Invalid argument supplied for foreach(), Severity: Warning PHP and invalid json为 foreach() 提供的参数无效,严重性:警告 PHP 和无效 json
【发布时间】:2018-08-08 17:08:37
【问题描述】:

我花了将近 8 个小时试图解决这个警告。我尝试用 CodeIgniter 和 PHP 编写一个站点,但我遇到了 PHP 问题。我确信它是如此简单,不会错。但我不知道其中的错误,只是 CodeIgniter 和 PHP 的新手。

控制者,

public function fetchStudentData($studentId = null) {
    if($studentId) {
        $result = $this->model_student1->fetchStudentData($studentId);
    }
else {
        $studentData = $this->model_student1->fetchStudentData();
        $result = array('data' => array());

        foreach ($studentData as $key => $value) {

            $button = '<!-- Single button -->
                <div class="btn-group">
                  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    Action <span class="caret"></span>
                  </button>
                  <ul class="dropdown-menu">
                    <li><a type="button" data-toggle="modal" data-target="#updateStudentModal" onclick="editStudent('.$value['student_id'].')"> <i class="glyphicon glyphicon-edit"></i> Edit</a></li>
                    <li><a type="button" data-toggle="modal" data-target="#removeStudentModal" onclick="removeStudent('.$value['student_id'].')"> <i class="glyphicon glyphicon-trash"></i> Remove</a></li>
                  </ul>
                </div>';
$photo = '  <img src="../'.$value['image'].'" alt="Photo" class="img-circle candidate-photo"/>';

            $result['data'][$key] = array(
                $photo,
                $value['name'] . ' ' . $value['lname'],
                $value['age'],
                $value['contact'],
                $value['email'],
                $button
            );
        } // /foreach       }
    }echo json_encode($result);
}

型号

public function fetchStudentData($studentId = null)
{
    if($studentId) {
        $sql = "SELECT * FROM student WHERE student_id = ?";
        $query = $this->db->query($sql, array($studentId));
        return $query->row_array();
    }
}

【问题讨论】:

  • 这个输出是什么var_dump($studentData);把它放在foreach上面的那行

标签: php


【解决方案1】:

试试这个

if (is_array($studentData) || is_object($studentData))
{
    foreach ($studentData as $value)
    {
        ...
    }
}

【讨论】:

  • 当然这消除了 PHP 报告错误的可能性,但也许他们需要修复为什么该数组没有获取数据
  • @YasheshPatel 欢迎 :) 将此答案标记为正确以帮助其他人。 meta.stackexchange.com/questions/5234/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
相关资源
最近更新 更多