使用PHP将查询结果存储在数组中,并在Javascript中使用该数组

时间:2017-10-14 18:01:01

标签: javascript php arrays json

我正在尝试使用PHP

将SQL查询的结果存储到数组中
 <?php   
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$ser="********";
$db="********"; 
$user="********"; 
$pass="********";

$dbDB = new PDO("odbc:Driver=ODBC Driver 13 for SQL Server;Server=********;Database=********;Port=1456", $user, $pass);

$sth = $dbDB->prepare("SELECT top 10 [Country],[Customer Name],[Purchase Number],[Part Number],[Qty],[Local Revenue] FROM ********");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_NUM);
 ?> 

现在我想在JavaScript中使用变量 $ result ,而不是以这种方式手动定义

    var result = [
            ["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", 1, 1558.40],
            ["Austria", "Tech Data Service GmbH", "3508314557", "40M7578", 1, 102.40]
            ,...
            ];

我的问题是,变量 $ result 将数组中的所有元素作为字符串。

我正在使用此变量来创建数据透视表,这会导致数字问题,而不是以SUM为例,它将它们连接成一个字符串。 这是我在php部分之后添加到同一文件中的脚本

<script>
var data1 = <?php echo json_encode($result); ?>;
console.log("data is:",data1);

var data2 = [
        ["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", 1, 1558.40],
        ["Austria", "Tech Data Service GmbH", "3508314557", "40M7578", 1, 102.40]
        ];

console.log("data is:",data2);       
</script>

这是我期望和我得到的区别 enter image description here

有没有办法将查询结果存储在一个保持元素类型的数组中?或者我应该添加到脚本部分的任何内容,以便它可以工作。

所以而不是

[“奥地利”,“Tech Data Service GmbH”,“3508224010”,“01HV707”,“1”,“1558.400000”]

我会

[“奥地利”,“Tech Data Service GmbH”,“3508224010”,“01HV707”,1,1558.40]

谢谢。

1 个答案:

答案 0 :(得分:2)

json_encode()可以接受additional parameters。能帮到你的是JSON_NUMERIC_CHECK

  

JSON_NUMERIC_CHECK

     

将数字字符串编码为数字。从那时起可用   PHP 5.3.3。

根据您的代码

Here's an example使用情况:

<?php
$array = ["Austria", "Tech Data Service GmbH", "3508224010", "01HV707", "1", "1558.400000"];

echo json_encode($array, JSON_NUMERIC_CHECK);

// result:
// ["Austria","Tech Data Service GmbH",3508224010,"01HV707",1,1558.4]