2014-10-10 28 views
0

我是新用json,mysqlphp。我想從我的mysql數據庫檢索數據到json並將它發送到高層圖。高圖表mysql json問題

我有一些數據存儲在不同的表中。

我要達致這結果:

[[name1,value1],[name2,value2],...] 

我使用這個代碼在我data.php文件:

$result = mysql_query("SELECT name, value FROM table1, table2"); 


$rows = array(); 
while($r = mysql_fetch_array($result)) { 
$row[0] = $r[0]; 
$row[1] = $r[1]; 
array_push($rows,$row); 
} 

print json_encode($rows, JSON_NUMERIC_CHECK); 

這段代碼的輸出給出了這樣的結果:

[[name1,value1],[name2,value2],[name1,value2],[name2,value1],... ] 

所以不是每個名稱都帶有它的值,而是每個名字都帶有所有的值。

我該如何解決這個問題?

編輯:

對不起,這裏的模糊度summury:

 table 1   table 2 
name other data value other data 
name 1 data 1  value 1 data 1 
name 2 data 2  value 2 data 2 
name 3 data 3  value 3 data 3 
name 4 data 4  value 4 data 4 
name 5 data 5  value 5 data 5 
name 6 data 6  value 6 data 6 
name 7 data 7  value 7 data 7 
name 8 data 8  value 8 data 8 
name 9 data 9  value 9 data 9 
name 10 data 10  value 10 data 10 
name 11 data 11  value 11 data 11 
name 12 data 12  value 12 data 12 
name 13 data 13  value 13 data 13 


obtained json   desired json  

name 1 value 1   name 1 value 1 
name 1 value 2   name 2 value 2 
name 1 value 3   name 3 value 3 
name 1 value 4   name 4 value 4 
name 1 value 5   name 5 value 5 
name 1 value 6   name 6 value 6 
name 1 value 7   name 7 value 7 
name 1 value 8   name 8 value 8 
name 1 value 9   name 9 value 9 
name 1 value 10  name 10 value 10 
name 1 value 11  name 11 value 11 
name 1 value 12  name 12 value 12 
name 1 value 13  name 13 value 13 
name 2 value 1    
name 2 value 2    
name 2 value 3    
name 2 value 4    
name 2 value 5    
    .  . 
    .  . 
name 13 value 13  
+0

你能告訴我們一個示例數據集嗎? – 2014-10-10 00:51:23

+1

***注意:*** **不再支持** mysql_ *'函數,它們是[**官方不推薦使用的**](https://wiki.php.net/rfc/mysql_deprecation) ,**不再保留**,將來會[**刪除**](http://php.net/manual/en/function.mysql-connect.php#warning)。您應該使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)更新您的代碼,以確保您的項目未來的功能。 – 2014-10-10 00:51:31

+1

好的...我會嘗試稍後將它更新爲mysqli! – RedOne 2014-10-10 00:54:47

回答

2

我的假設去上面的代碼是正確的,你鍵入它的生產方式。那麼問題可能是您的SQL查詢在於(假設是,名字是從表1和值從表2)

SELECT name, value FROM table1, table2 

在上面的實例中,你不加入他們。理想情況下,當您輸出兩張桌子時,您需要在某個時間加入:

SELECT name , value FROM table1 , table2 WHERE table1.col1 = table2.col2 
+0

是的,先生;你的假設是正確的'名字來自table1,值來自table2'......我很抱歉,如果我不能更清楚。我應該添加'WHERE table1.col1 = table2.col2'來獲得加入? – RedOne 2014-10-10 01:18:17

+0

@RedOne - 是的,這就是你可能需要做的。 – Duniyadnd 2014-10-10 01:21:17

+0

它給了我一個空陣列先生,我得到的是:[]。 '$ result = mysql_query(「SELECT name,value FROM table1,table2 WHERE table1.col1 = table2.col2」);'我錯過了一些東西! – RedOne 2014-10-10 01:37:44