2016-08-02 52 views
-1

返回所以我的知識,我有一個非常簡單的一塊的PHP已經整天打破我的背MySQL之間的查詢只有最後的結果

$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)的信息!有沒有人有任何想法,爲什麼我似乎能夠只記得一行?

在此先感謝!

+2

'和mysql_fetch_row '提取__row__而不是__all rows__ –

+0

**停止**使用不推薦使用的'mysql_ *'API。在準備好的語句中使用'mysqli_ *'或'PDO' – Jens

+0

請[停止使用mysql_函數,因爲它們已從PHP中刪除](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -phunctions-in-php) – Machavity

回答

0

mysql_fetch_row()能夠返回一行, 可以循環的結果通過使用

A)mysql_fetch_array()返回的數組(0 =>值,列=>值);

B)mysql_fetch_assoc()的返回陣列(柱=>值)的同時在JSON需要..

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

MySQL的是舊的,現在所有的步行到的mysqli

+0

你讀過他們的問題下的(新)評論嗎?特別是有關:*「謝謝!我已經更改爲** mysqli _,**是否有方法可以調用與該語句之間匹配的所有行?再次感謝 - ashlewis 15分鐘前」* –

+0

This works很好用mysql!謝謝:)我已經更改爲mysqli,這似乎工作任何一種方式,但謝謝你提供的mysql版本只是incase! – ashlewis