gpt4 book ai didi

javascript - php/mysql 将数组写入json文件

转载 作者:行者123 更新时间:2023-11-29 02:51:17 29 4
gpt4 key购买 nike

我有以下问题,我的 php 代码从 dB 获取所需的数据:

<?php

require('dB_connect.php');

$reportID = intval($_GET['q']);


$sql = "SELECT nmech, nelect, nplant, ncivil FROM `flashreport` WHERE ID = '".$reportID."'";
$result = mysqli_query($dbc, $sql);

$emparray = array();
while($row =mysqli_fetch_assoc($result))
{
$emparray[] = $row;
}
file_put_contents("newport.json", json_encode($emparray,JSON_FORCE_OBJECT));

mysqli_close($dbc);

?>

如您所见,这将写入一个 json 文件 - 结果:

{"0":{"nmech":"2.00","nelect":"2.00","nplant":"2.00","ncivil":"2.00"}}

当我使用以下js代码从json文件中提取时:

$.getJSON('newport.json', function(data) {
console.log(data);

使用 chrome 的控制台日志显示如下:

[Object]
0: Object
nmech: "3.00"
__proto__: Object
length: 1

只显示第一个键/值对而不是所有 4 K/V 对?有人可以解释我做错了什么吗?

最佳答案

恕我直言,将结果写入 json 文件有点矫枉过正。为什么不直接将 json 添加到模板或页面 View (PHP) 中。

<script>
// Create settings from PHP/Session and
// Initialize Registration Namespace
var registrationSettings = <?php echo (!empty($data)) ? @json_encode($data) : json_encode(array()); ?>;
Registration.init({ settings: window.registrationSettings });
</script>

显然,您没有注册命名空间对象,但这只是在页面首次加载时从 PHP 设置设置的示例方法。

所有你真正需要它来输出一些数据。

<script>
var newport = <?php echo (!empty($emparray)) ? @json_encode($emparray) : json_encode(array()); ?>;
</script>

或者更简单的写法。

<script>
var newport = <?php echo (!empty($emparray)) ? @json_encode($emparray) : '[]'; ?>;
</script>

我可以看到您正在尝试归档(或缓存)结果。您可能应该只在 PHP Controller 中编写一个 AJAX 方法来处理请求。数据可以缓存在 Memcached 或其他一些快速数据处理程序中的服务器端。大多数 PHP 框架都支持 memcached。

关于javascript - php/mysql 将数组写入json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348564/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com