【问题标题】:PHP error: Notice: Undefined offsetPHP错误:注意:未定义的偏移量
【发布时间】:2016-10-01 20:08:48
【问题描述】:

我创建了一个 api 来从数据库中获取数据以将其作为 json 回显,最后以 html 显示,但同时回显数据,

我遇到了 php 错误

注意:未定义的偏移量:/opt/lampp/htdocs/ReadExchange/api.php 第 16 行中的 80

注意:未定义的偏移量:第 16 行 /opt/lampp/htdocs/ReadExchange/api.php 中的 79

注意:未定义的偏移量:第 16 行 /opt/lampp/htdocs/ReadExchange/api.php 中的 78

等等,

PHP 代码

$db_result_set = $db->prepare('SELECT p.Id, p.FirstName, p.MiddleName, p.LastName, p.Gender, p.Location, p.Email, p.Mobile,b.BookTitle, b.BookGenre, b.BookWriter, b.BookDescription FROM personaldetails AS p LEFT JOIN bookdetails AS b ON b.UserId = p.Id ORDER BY p.Id DESC');;

$db_result_set->execute();

$final = [];
foreach ($db_result_set as $u) {

    if (!is_array($final[$u["Id"]])) {   //line 16 
        $final[$u["Id"]]= [
            "Id" => $u["Id"],
            "FirstName" => $u["FirstName"],
            "MiddleName" => $u["MiddleName"],
            "LastName" => $u["LastName"],
            "Gender" => $u["Gender"],
            "Location" => $u["Location"],
            "Email" => $u["Email"],
            "Mobile" => $u["Mobile"],
         ];
    }
    $final[$u["Id"]]["books"][] = [
        "BookTitle" => $u["BookTitle"],
        "BookGenre" => $u["BookGenre"],
        "BookWriter" => $u["BookWriter"],
        "BookDescription" => $u["BookDescription"],
    ];

}   
    
    header('Content-type: application/javascript');
    echo json_encode($final);
    

?>

我没有确认,但我认为因此我没有在 html 中获取 json 数据。

【问题讨论】:

  • 使用if (!empty($final[$u["Id"]]))
  • header('Content-type: application/javascript'); ?你想回应什么?你是说header('Content-type: application/json'); 吗?

标签: javascript php json html pdo


【解决方案1】:

您正在尝试检查数组中是否存在未定义的偏移量。您首先需要检查isset 是否存在偏移量。

所以把你的代码改成

if (isset($final[$u["Id"]]) && ! is_array($final[$u["Id"]))

【讨论】:

    【解决方案2】:

    不是:if (!is_array($final[$u["Id"]]))

    但是:if (!isset($final[$u["Id"]]))

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      相关资源
      最近更新 更多