2015-05-25 33 views
0

我有一個問題我已經tryied作出JSON響應看起來像:Mysql的數組JSON皈依

{ 

"0":{ 
    "cid":"2", 
    "user_name":"4", 
    "user_title":null, 
    "user_description":null, 
    "user_tags":null, 
    "user_imgid_logo":"05d419b4cc5c6d1d2fabf90a8dbd967a", 
    "user_online":"2", 
    "rank":"0", 
    "multibitrate":"0", 
    "user_name":"gqgeee", 
    "user_logo_url":"http:\/\/static.example.tv\/logos\/05d419b4cc5c6d1d2fabf90a8dbd967a.jpg", 
    "user_image":"1" 
}, 
"1":{ 
    "cid":"1434", 
    "user_name":"dokumenty", 
    "user_title":"*Filmy dokumentalne* (^HQ^-^HD^)", 
    "user_description":"short deskt", 
    "user_tags":"asfasf", 
    "user_imgid_logo":"51bbe341fe3e92f37a89609b80274be8", 
    "user_online":"2", 
    "rank":"1", 
    "multibitrate":"1", 
    "user_name":"asdd", 
    "user_logo_url":"http:\/\/static.example.tv\/logos\/51bbe341fe3e92f37a89609b80274be8.jpg", 
    "user_image":"1" 
}} 

我已成功地連接到MySQL,並從數據庫中創建JSON,但我的JSON does not看起來作爲上面的一個:

[ 

{ 
    "1":{ 
     "cid":"1", 
     "user_name":"sgsd", 
     "user_title":"sgsd asgx", 
     "user_description":"asgx na czasie", 
     "user_tags":"asgx", 
     "user_imgid_logo":"sgsd", 
     "user_online":"2", 
     "rank":"3", 
     "multibitrate":"1", 
     "user_name":"Kowalski", 
     "user_logo_url":"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/8\/84\/asd.png", 
     "user_image":"1" 
    } 
}, 
{ 
    "2":{ 
     "cid":"2", 
     "user_name":"sgsd 2", 
     "user_title":"sgsd asgx 2", 
     "user_description":"asgx na czasie 2", 
     "user_tags":"asgx", 
     "user_imgid_logo":"sgsd", 
     "user_online":"2", 
     "rank":"3", 
     "multibitrate":"1", 
     "user_name":"Kowalski", 
     "user_logo_url":"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/8\/84\/sgsd.tv_logo_2014.png", 
     "user_image":"1" 
    } 
} 

] 

^括號是不需要的,json仍然搞砸了一下。

這是php我的烴源代碼:

<?php 
$getoption = $_GET["option"]; 
if ($getoption === 'psd') { 
//$dataList = substr($dataList, 1, -1); 
//open connection to mysql db 
$connection = mysqli_connect("localhost","datbase","duser","upass") or die("Error " . mysqli_error($connection)); 
//fetch table rows from mysql db 
$sql = "select * from public"; 
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection)); 
$num_rows = mysql_num_rows($result); 
//create an array 
// $emparray[] = array(); 
//$emparray[] = array('1'=>$row); 
echo '<pre>'; 
var_dump(mysqli_fetch_assoc($result)); 
echo '</pre>'; 
$start = 1; 
while($row = mysqli_fetch_assoc($result)) 
{ 
$emparray[] = array($start=>array($row)); 
$start++; 
} 
//$dataList = substr(json_encode($emparray), 1, -1); 
$dataList = json_encode($emparray); 
echo $dataList; 
//close the db connection 
mysqli_close($connection); 
} 
if ($getoption === 'sk') { 
echo 'ks os'; 
} 
?> 

是否有任何身體願意幫忙嗎?謝謝。

+0

如果您看到[]圍繞{},則表示正確。您的前端JS ajax調用將能夠正確讀取它。 =) 在前端,請確保它將json響應視爲數組而不是對象。 – Mox

+0

嘗試'json_encode($ amparray,JSON_FORCE_OBJECT)' –

+0

驗證任何json,你可以在這裏查看http://jsonlint.org –

回答

0
$start = 1; 
while($row = mysqli_fetch_assoc($result)) 
{ 
$emparray[$start] = $row; 
$start++; 
} 
$dataList = json_encode($emparray); 
echo $dataList; 

試試這個!大部分while循環中的部分有點搞砸了。

0

請這個嘗試...

$start = 0; 
while($row = mysqli_fetch_assoc($result)) 
{ 
    $emparray[] = array($start=>$row); 
    $start++; 
}