【发布时间】:2015-03-13 20:13:07
【问题描述】:
我做错了什么?我正在尝试从数据库中取出最新的行(基于日期)并将其转换为 JSON。但是这个文件只给我[]。
$date=date("Y-m-d",strtotime($_GET['date']));
$myquery = "SELECT * FROM test WHERE week='$date'";
$query = mysql_query($myquery);
if ( ! $myquery ) {
echo mysql_error();
die;
}
$data = array();
for ($x = 0; $x < mysql_num_rows($query); $x++) {
$data[] = mysql_fetch_assoc($query);
}
echo json_encode($data);
mysql_close();
?>
我的数据如下所示:
#id | week | firstname | last name | score#
###1 |2015-03-06 | Bill | Jones | 25
###2 |2015-03-13 | Bill | Jones | 45
###3 |2015-03-06 | Dave | Smith | 32
###4 |2015-03-13 | Dave | Smith | 52
###5 |2015-03-06 | Mary | Chu | 28
###6 |2015-03-13 | Mary | Chu | 45
因此,对于 2015 年 3 月 13 日,我希望将 Bill、Dave 和 Mary 的数据转换为 JSON。我不想要上周的数据,只想要最新的。
【问题讨论】:
-
注意 - 你正在检查
if ( ! $myquery ) {,但你应该检查if ( ! $query ) {,因为$query是你正在做的mysql_query($myquery) -
foreach ($query as $row) { $data[$i]['id'] = row['id'] ; $i++} 然后 $out = json_encode($data);假设您的查询正在返回结果。
-
为什么人们不直接使用 fetchAll php.net/manual/en/pdostatement.fetchall.php ??一次获取一行只会占用 mysql 服务器上的资源。哦,因为您仍在使用 mysql 而不是使用 PDO 编写 PHP4