Php 从MySQL临时表获取数据的问题
我在从临时表获取json数据时遇到问题。正如您所见,我试图在Php 从MySQL临时表获取数据的问题,php,mysql,json,mysqli,Php,Mysql,Json,Mysqli,我在从临时表获取json数据时遇到问题。正如您所见,我试图在$query2生成一个临时表charts\u econo,在第二个文件中,我试图将该表解析为JSON,但在运行第一个PHP(createTemp.PHP)和第二个PHP(testTemp.PHP)时,我什么也没有得到 这是我的createTemp.php <?PHP include 'conconfig.php'; $con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME); $collm
$query2
生成一个临时表charts\u econo
,在第二个文件中,我试图将该表解析为JSON,但在运行第一个PHP(createTemp.PHP)和第二个PHP(testTemp.PHP)时,我什么也没有得到
这是我的createTemp.php
<?PHP
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$collm = $_POST['column'];
$query = "SELECT x, y FROM econo WHERE ".$collm."=1";
$results = $con->query($query);
$return = array();
if($results) {
while($row = $results->fetch_assoc()) {
$return[] = array((float)$row['x'],(float)$row['y']);
}
}
$query2 = "CREATE TEMPORARY TABLE IF NOT EXISTS `charts_econo` (
`econo_sum_projects` decimal(12,7) NOT NULL,
`econo_sum_powerline` decimal(12,7) NOT NULL,
`econo_sum_roads` decimal(12,7) NOT NULL,
`econo_sum_cost` decimal(12,7) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AS(SELECT COUNT(project),
SUM(powerline_length),
SUM(road_length),
SUM(cost_per_year)
FROM econo WHERE $collm=1;";
$con->query($query2);
$con->close();
echo json_encode($return);
?>
这是testTemp.php
<?PHP
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$query = "SELECT * FROM `charts_econo`";
$results = $con->query($query);
if($results) {
while($row = $results->fetch_assoc()) {
$json= json_encode($row);
}
}
$con->close();
echo $json;
?>
来自mysql文档: 临时表仅对当前会话可见,并在会话关闭时自动删除 因此,第二个脚本(在大多数情况下)无法访问第一个脚本创建的表!您必须查询它并在第一个脚本中输出JSON,或者从第一个脚本中的
CREATE TEMPORARY TABLE
直接在任一脚本中输出SELECT
的结果(即不使用任何临时表)
要在同一个JSON中输出这两个文件,可以创建以下两个文件的数组:
echo json_encode([$results1, $results2]);
或关联数组/对象:
echo json_encode({'results1':$results1, 'results2':$results2});
这将改变解码后客户端访问每个部件的方式:
decoded_json[0]
或
谢谢jcaron,但是你能告诉我如何从一个PHP导出两个json对象吗?我的意思是,正如您可以从createTemp.php中看到的,我已经回显了json_编码($return);(我必须保留它)那么我怎样才能导出另一个呢?@MonaCoder在我的回答中补充了一些关于如何对两个输出进行分组的细节。
decoded_json['results1']