Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数字加载到MySQLi fetch_array()函数中_Javascript_Php_Json_Mysqli - Fatal编程技术网

Javascript 如何将数字加载到MySQLi fetch_array()函数中

Javascript 如何将数字加载到MySQLi fetch_array()函数中,javascript,php,json,mysqli,Javascript,Php,Json,Mysqli,使用以下MySQLi和PHP代码段,我可以将结果导出为数字数组: ["8","188.396496","7.876766","69885005.45"] 现在我需要以精确的数字格式输出,如(从项目中删除“”) 这是我在PHP部分中的代码 $query = "SELECT project, powerline, road, cost FROM `charts_econo_new`" ; $results = $con->query($query); if($results) { whi

使用以下MySQLi和PHP代码段,我可以将结果导出为数字数组:

["8","188.396496","7.876766","69885005.45"]
现在我需要以精确的数字格式输出,如(从项目中删除“”)

这是我在PHP部分中的代码

$query = "SELECT project, powerline, road, cost FROM `charts_econo_new`" ;
$results = $con->query($query);
if($results) {
  while($row = $results->fetch_array(MYSQLI_NUM)) {
     $json=json_encode($row);
  }
}
$con->close();
echo $json;
?>
我该怎么做

更新
在这种情况下,输出是
[8188.396496,7.87676669885005.45]
但我只需要得到8,因为cars[0]是8。

在调用json_encode之前,您只需将结果转换为float:

$query = "SELECT project, powerline, road, cost FROM `charts_econo_new`" ;
$results = $con->query($query);
if($results) {
  while($row = $results->fetch_array(MYSQLI_NUM)) {
     // Cast to float
     foreach($row as &$item) {
       $item = (float) $item;
     }

     $json=json_encode($row);
  }
}
$con->close();
echo $json;
(您只得到表的最后一行,因为每次都会覆盖$json的内容,但如果您的表中只有一行就可以了)

Javascript应该是:

req2.done(function(data) {
    var cars = [];
    cars.push(data[0]);
    console.log(cars[0]);
});

请尝试使用函数从浮点数中的DB转换字符串。

FYI,您只回显最后一行。每次通过循环都会覆盖
$json
。Barmar,感谢您的提示,
charts_econo_new
实际上是一个临时表,只保留一行和,谢谢。如果只有一行,为什么在
循环时会有
呢?如果您实际演示如何在这种情况下使用“floatval”,可能会更有帮助?是的,我很抱歉。此线程的其他答案完美地展示了如何使用该函数。谢谢。那么你的回答对提问者有什么额外的和有用的?什么?是考试吗?我再次感到抱歉。我的英语很差,而且我的答案很短(在你看来),也不是很有用。这是正确的。我只是假装帮忙,没有打扰。非常感谢Barmar,您能告诉我如何将结果加载到一个Javascript数组中,比如jquery ajax.done()中的cars=[]吗?谢谢如果您指定了
数据类型:“json”
,您可以只做
cars=result
。我做了,但需要在highchart.js中显式创建一个数组来引用它们。不幸的是,highcharts会引发未捕获的highcharts错误#14:www.highcharts.com/errors/14当我这样做时,我尝试将数据加载到Javascript数组中,在这种情况下是一个car[0](索引值)如果
cars
是一个二维数组,并且这应该是一个新行,则使用
cars.push(结果)
$query = "SELECT project, powerline, road, cost FROM `charts_econo_new`" ;
$results = $con->query($query);
if($results) {
  while($row = $results->fetch_array(MYSQLI_NUM)) {
     // Cast to float
     foreach($row as &$item) {
       $item = (float) $item;
     }

     $json=json_encode($row);
  }
}
$con->close();
echo $json;
if ($results) {
    $row = $results->fetch_array(MYSQLI_NUM);
    $row = array_map('floatval', $row); // Convert strings to numbers
    echo json_encode($row);
}
req2.done(function(data) {
    var cars = [];
    cars.push(data[0]);
    console.log(cars[0]);
});