2014-11-23 125 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