我有两个列和1406行的简单表。我想从它获得一个json输出到我的Android应用程序。但问题是,如果我在查询中使用 des 值,则不会生成输出。我可以从材料值中获取输出,但是如果我使用 des 没有给出输出,即使我只使用 des,也不会生成输出。如果我使用限制大约400,那么输出 des 。我尝试了XAMPP和WAMP。结果相同。
我的php文件。
<?php
require_once 'include/Config.php';
header('Content-Type: application/json');
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("connection failed");
//mysql_select_db(DB_DATABASE,$con) or die("db selection failed");
$r=mysqli_query($con, "SELECT des from tbl_test_mas_material");
$result = array();
while($row=mysqli_fetch_array($r)){
array_push($result, array('des' => $row[0]));
}
$json['feed']= $result;
echo json_encode($json);
mysqli_close($con);
?>
如果我将查询更改为&#34; SELECT des from tbl_test_mas_material limit 400&#34; ,则会有输出。
这是我的表
CREATE TABLE `tbl_test_mas_material` (
`material` varchar(18) NOT NULL,
`des` varchar(45) NOT NULL,
PRIMARY KEY (`material`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
我也可以提供CSV文件。
答案 0 :(得分:0)
$ sql =&#39;从
des
&#39;中选择tbl_test_mas_material
;$ res = $ con&gt;查询($ sql);
而($行= mysqli_fetch_row($ RES))$ ARR [] = $行[0];
$ arrJS = json_encode($ arr);
echo $ arrJS;
答案 1 :(得分:0)
对您的脚本进行这些更改,然后从浏览器运行它,然后您应该看到它可能产生的任何错误消息。
我已经为MYSQLI调用添加了一些错误检查,并且还设置了错误报告,并设置了显示错误,以防您在实时服务器上运行此错误,通常关闭这些有用的调试工具。
我还简化了你正在使用的数组创建
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'include/Config.php';
header('Content-Type: application/json');
$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
$r=mysqli_query($con, "SELECT `des` from tbl_test_mas_material");
if ( $r === false ) {
echo mysqli_error($con);
exit;
}
$result = array();
while( $row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$result[] = $row;
}
echo json_encode( array('feed' => $result) );
?>
JSON字符串应该显示在浏览器上,或者您可能已经抑制的任何错误消息。
答案 2 :(得分:0)
<强> .........解.......... 强>
最后我弄清楚了。问题在于 json encode ,因为我弄清楚了。所以我选择了另一种方式。这是最终的代码。
<?php
require_once 'include/Configg_t.php';
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
$result = $conn->query("SELECT tbl_inventory.qty, tbl_mas_material.des, tbl_inventory.plant, tbl_mas_material.matgrp, tbl_inventory.material from tbl_inventory inner join tbl_mas_material
on tbl_mas_material.material = tbl_inventory.material where tbl_inventory.qty > 0 and tbl_inventory.type = 'D' order by material");
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"qty":"' . $rs["qty"].'",';
$outp .= '"des":"' . $rs["des"].'",';
$outp .= '"plant":"' . $rs["plant"].'",';
$outp .= '"matgrp":"' . $rs["matgrp"].'",';
$outp .= '"material":"'. $rs["material"].'"}';
}
$outp .="]}";
$conn->close();
echo ( '{"feed" : ' . $outp);