MYSQL BETWEEN查询只返回最后一个结果


MYSQL BETWEEN query only returning last result

据我所知,我有一个非常简单的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)仅供参考!有人知道为什么我似乎只能回忆起一行吗

提前感谢!

mysql_fetch_row()返回一行,您可以使用循环结果

A) mysql_fetch_array()返回数组(0=>value,column=>value);

B) mysql_fetch_assoc()返回json中所需的数组(column=>值)。。

while($row = mysql_fetch_assoc($result)){
$array[] = $row;
}
 echo json_encode($array);

mysql是旧的,现在都走到mysqli