我有一个PHP脚本被构造用于响应数据的ajax调用,这是来自mySQL数据库的两个列,形式为“Date”,“Value”,日期跟随每周间隔。
最终我想通过设置会话变量将结果返回到调用页面来保存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数组以便稍后可以通过调用页面操作时,系列中的每个其他值都将被删除。 Ť
作为创建最终数组对象的中间步骤,我使用下面的代码,只需编码并回显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 :(得分:0)
问题是你的while
循环正在获取一行,然后在你的json_encode
调用中,代码正在获取一个新行。
您应该使用$row
来电中提取的json_encode
。
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
echo json_encode($row)." ";
}
答案 1 :(得分:0)
正确的代码是:
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
echo json_encode($row))."
"; }
每次调用mysql_fetch_array时都会获取该行。