2014-11-23 92 views
0

对不起,我的英文。我试图将数据输出到数据库格式json。它似乎做一切正确,但它不是真正的产出。这里是我获得的链接:http://ksupulse.tk/get_all.php如果我确实检查了网站http://jsonlint.com/http://jsonformatter.curiousconcept.com/的有效性会得到一个错误。用数据库输出json

get_all.php

<?php 

header('Content-Type: application/json; charset=utf-8'); 

?> 

<?php 


$response = array(); 

require 'db_connect.php'; 

$db = new DB_CONNECT(); 

$result = mysql_query("SELECT * FROM demo") or die(mysql_error()); 

if (mysql_num_rows($result) > 0) { 

    $response["demo"] = array(); 

    while ($row = mysql_fetch_array($result)) { 
     $product = array(); 
     $product["id"] = $row["id"]; 
     $product["name"] = $row["name"]; 
     $product["detaly"] = $row["detaly"]; 

     array_push($response["demo"], $product); 
    } 
    $response["success"] = 1; 


    echo json_encode($response); 

} else { 
    $response["success"] = 0; 
    $response["message"] = "No products found"; 

    echo json_encode($response); 
} 
?> 

我老老实实花了这么多时间来寻找这个问题,但答案是找不到的。所有相同的,为什么我有打印到数据库是不是JSON?数据库编码的utf_unicode_ci,以及utf8_general_ci中的表格

+1

你可以发布结果输出吗? – 2014-11-23 15:28:35

+1

你可以发布一个snipet的数据回声吗? 'json_encode'应该创建一个有效的json对象(或者如果失败,则为'FALSE')。代码看起来应该起作用。 – Jite 2014-11-23 15:29:34

+1

此外,请停止使用不推荐使用的'mysql_' api,检查'PDO'或'mysqli'来获取更新的API,而不是推荐使用。 – Jite 2014-11-23 15:30:17

回答

3

您的{}序列前面有一个额外的回车符(本身有效)。

您不应该关闭?>,然后在header指令后重新打开<?php您的脚本。 它向浏览器输出垃圾。您确实希望您的信息流以{的第一个字符开头。

换句话说(对于@KnightRider)脚本的第5-7行应该被删除!

05 ?> 
06 
07 <?php 
1

对不起,我回答,这是因为我不能尝试,但必须写我的看法

嗨,我已经检查这个,你在发布注释和JSONlint验证为有效的JSON

{"demo":[{"id":"3","name":"123123","detaly":"123123123"},{"id":"4","name":"4444‌​‌​","detaly":"555555"}],"success":1} 

您还需要什么?

+2

请参阅上面的答案:JSON本身是有效的,但PHP脚本输出无关的前导空格。 – Gabriel 2014-11-23 15:44:12

+1

嗨@Gabriel请对不起,我不明白,请详细说明并标明回车的地方。 – 2014-11-23 15:49:18

+1

该文件开头于: '<?php header('Content-Type:application/json; charset = utf-8'); ?> <?php $ response = array();' 这是错误的。它应该是: '<?php header('Content-Type:application/json; charset = utf-8'); ('Content-Type:application/json; charset = utf-8');}; $ response = array();' – Gabriel 2014-11-23 15:53:20