【问题标题】:json_encode returns Array full of null'sjson_encode 返回充满空值的数组
【发布时间】:2019-02-03 05:51:05
【问题描述】:

首先是我的代码:

    <?php 

        include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');


        function filterTable($searchquery)  
        {   
            $filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
            return $filter_Result;
        }


        $searchquery = "SELECT Titel, Vorname, Name, Unternehmen, Gruppe FROM mitglieder";
        $searchresult = filterTable($searchquery) or die("Tabelle kann nicht angezeigt werden");

        echo json_encode($searchresult);

    ?>

我找到了多个帖子,其中最受欢迎的是this 一个。

所以我尝试了这个:

    $filter_Result = mysqli_query($GLOBALS['connect'], 'SET CHARACTER SET utf8', $searchquery);

我还将它放在连接变量之前和它自己的函数中,因为我不确定如何使用它,但没有任何帮助。当我把它作为参数时,它实际上给出了一个解析错误。

当我在发送之前回显数组时,它完全正常。在我使用json_encode() 之后,一切都被擦除了,我有一个充满空值的数组。你可以在下图中看到。我回显了数组,然后以数组作为参数回显json_encode。黄色标记线是json_encode 之一,您可以看到突然间一切都为空。

有人知道我做错了什么吗?

编辑:忘了在我的查询中提到这些是德语单词。忽略这些,因为问题不在于 SQL 查询。

编辑 2:提议的帖子没有回答我的问题,因为它不是类似的问题。其他用户的问题是使用多维数组并且它们返回不同的结果。虽然它与我的问题很接近,但它不是同一个问题,也不是同一个解决方案。

【问题讨论】:

标签: php arrays json


【解决方案1】:

正如@Jeff 评论:mysqli_query 返回一个结果对象。

mysqli_fetch_all Documentation

试运行:

$data = mysqli_fetch_all($searchresult);
echo json_encode($data );

【讨论】:

  • 确实如此!谢谢!还要感谢@Jeff!你也错过了一个分号;)
  • 既然你没有获取,你从哪里得到你在问题中发布的数组???
  • @AbraCadaver 它是我在网站不同部分使用的数组。基本上,我在前端的表格中使用它,该表格显示了我的数据库中的值。在这个问题中,我在后端使用它并使用 Ajax,因为我希望我的后端保持在同一个站点上,无论您正在编辑什么表,这与在查看不同表时更改站点的前端不同。
猜你喜欢
  • 2016-06-02
  • 2012-03-20
  • 2021-07-30
  • 1970-01-01
  • 2018-11-22
  • 2020-02-13
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多