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

时间:2016-08-02 18:23:45

标签: php mysql ajax

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

提前致谢!

1 个答案:

答案 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