JSON编码丢弃其他所有值
我有一个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的东西,所以它可能显而易见。
感谢
问题是,你的while
环取一排,然后在json_encode
调用,代码获取一个新行。
您应该使用在json_encode
调用中获取的$row
。
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
echo json_encode($row)." ";
}
正确的代码是:
while ($row=mysql_fetch_array($res_Data,MYSQL_NUM)) {
echo json_encode($row))."
"; }
每次调用mysql_fetch_array行是获取时间。
感谢bicccio&typo.pl!这对你们来说可能很明显 – nortyrich 2011-03-31 12:08:58
刚注意到hmtl标签已经全部被剥离出上面的代码,所以可能有点混乱。 – nortyrich 2011-03-31 07:42:06