据我所知,我有一个非常简单的PHP片段,它一整天都在打扰我
$startDate = "2016-07-27";
$endDate = "2016-07-31";
//--------------------------------------------------------------------------
// 1) Connect to mysql database
//--------------------------------------------------------------------------
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
//--------------------------------------------------------------------------
// 2) Query database for data
//--------------------------------------------------------------------------
$result = mysql_query("SELECT * FROM publishersStatistics WHERE dataDate BETWEEN STR_TO_DATE('" . $startDate . "','%Y-%m-%d') AND STR_TO_DATE('" . $endDate . "','%Y-%m-%d') ORDER by dataDate DESC");
$array = mysql_fetch_row($result); //fetch result
//--------------------------------------------------------------------------
// 3) echo result as json
//--------------------------------------------------------------------------
echo json_encode($array);
代码非常简单,这是整个文档(数据库连接除外) - 它需要一个开始日期和结束日期,并查找这两个日期之间的所有值。但出于某种原因,仅返回查询中的最后日期(2016-07-31)的信息。
我不知道为什么会这样!
我还测试过使用ASC而不是DESC,这会返回第一个结果。 (2016-07-28)仅供参考!有谁知道为什么我似乎能够只召回一行?
提前致谢!
答案 0 :(得分:0)
mysql_fetch_row()返回一行, 你可以使用
循环结果A)mysql_fetch_array()返回数组(0 => value,column => value);
或
B)mysql_fetch_assoc()在json中返回数组(column => value)..
while($row = mysql_fetch_assoc($result)){
$array[] = $row;
}
echo json_encode($array);
mysql已经老了,现在全都走到了mysqli