2011-03-31 58 views
0

我有一個PHP腳本構造來響應數據的ajax調用,這是一個mySQL數據庫中的兩個列「Date」,「Value」形式的日期,每週間隔。JSON編碼丟棄其他所有值

最終,我想通過設置一個會話變量來將結果返回給調用頁面,以將系列數據保存在json編碼數組中。我不確定這是否是最合適的方法,因爲我正在跟蹤一些在線示例和教程的混雜內容,所以我只是嘻哈我正走在正確的軌道上。

到目前爲止,我可以呈現結果到調用頁面上的HTML表格如下,給了我,我會期望的結果:

echo "<table border='1'> 
<tr> 
<th>Date</th> 
<th>Value</th> 
</tr>"; 

while($row=mysql_fetch_array($res_Data)) { 
    echo "<tr>"; 
    echo "<td>".$row['Date']."</td>"; 
    echo "<td>".$row['Value']."</td>"; 
    echo "<tr>"; 


} 
echo "</table>"; 

這給了我下面的表(複製到此處無邊界):

Date  Value 
2009-07-12 47.09 

2009-07-19 45.48 

2009-07-26 87.03 

2009-08-02 59.96 

2009-08-09 52.82 

2009-08-16 29.20 

然而,當我嘗試將數據編碼成JSON陣列,以便它可以通過調用頁面系列中的所有其他值被丟棄在後面操縱。 T

作爲創建最終數組對象的中間步驟,我使用下面的代碼來簡單地編碼和回顯msql查詢的每一行,首先重置指針。

mysql_data_seek ($res_Data, 0); 

while ($row=mysql_fetch_array($res_Data)) { 
     echo json_encode(mysql_fetch_array($res_Data,MYSQL_NUM))."<br/>"; 
} 

這將產生以下輸出,其中每隔一週被刪除:

["2009-07-19","45.48"] 
["2009-08-02","59.96"] 
["2009-08-16","29.20"] 
["2009-08-30","99.35"] 
["2009-09-13","99.35"] 
["2009-09-27","17.17"] 
["2009-10-11","276.64"] 
["2009-10-25","336.03"] 
["2009-11-08","439.28"] 
["2009-11-22","383.82"] 
["2009-12-06","512.04"] 
["2009-12-20","796.64"] 
["2010-01-03","1056.55"] 

沒有人有任何想法,爲什麼這可能發生?

Ps我是一個noobie的東西,所以它可能顯而易見。

感謝

+0

剛注意到hmtl標籤已經全部被剝離出上面的代碼,所以可能有點混亂。 – nortyrich 2011-03-31 07:42:06

回答

0

問題是,你的while環取一排,然後在json_encode調用,代碼獲取一個新行。

您應該使用在json_encode調用中獲取的$row

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 
    echo json_encode($row)." "; 
} 
0

正確的代碼是:

while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) { 
    echo json_encode($row))." 
"; } 

每次調用mysql_fetch_array行是獲取時間。

+0

感謝bicccio&typo.pl!這對你們來說可能很明顯 – nortyrich 2011-03-31 12:08:58