2014-06-26 33 views
-2

我填寫數組中已經生成密鑰與數據庫的值的問題。數據庫返回2行,第一行應該是密鑰,第二行是該密鑰的值。輸入鍵與數組中的值

這是我的代碼:

$days = array(); 

if($query=db::query("select dayname(date_earned) as dayEarned, sum(downloads) as dayDownloaded 
from perf_earnings 
where date_earned between DATE_SUB(curdate(), INTERVAL 7 DAY) AND curdate() 
group by dayEarned")) 
    { 
    while($row=$q->fetch_assoc()){ 
     $day = $row["dayEarned"]; 
     $dowSum = $row["dayDownloaded"]; 
     $days[$day] = $dowSum; 
    } 
} 

我得到一個空數組。

我想要得到的是:

array(
[Monday]=>230, 
[Tuesday]=>500, 
[Wednesday]=>340, 
etc. 
) 

很好,一如既往,有你不仔細看一個愚蠢的錯誤煥。我沒有輸入$查詢的權利,我想做fetch_assoc。

我寫了「$ q」而不是「$ query」。

無論如何。

+0

第一個手動執行查詢並檢查 –

+0

您是否打擾檢查您的查詢是否成功?你簡單地假設'$ query'將是一個結果句柄,並且可以通過fetch_assoc循環運行。查詢成功的方式恰恰是** ONE **方式,並且有無數種方式可以讓它失敗。永遠永遠都不會取得成功,因爲無窮大的可能性幾乎是1。總是檢查失敗,並將成功視爲令人驚喜的事情。 –

+0

我的查詢工作正常,我在mysql工作臺上試了一下。只有在某種程度上它不適用於php。如果它返回false,我在其他塊中使用alert,但沒有發生任何事情,所以我假設查詢是可以的。 – user3605921

回答

0

我覺得你的查詢沒有得到任何結果集。
必先
在由需要orignial查詢組爲組由date_earned代替組由dayEarned
一種更好的方式來寫上面的代碼將是

<?php 
     $qry = "SELECT dayname(date_earned) as dayEarned, sum(downloads) as dayDownloaded 
      FROM perf_earnings 
      WHERE date_earned between DATE_SUB(curdate(), INTERVAL 7 DAY) 
      AND curdate() 
      GROUP BY date_earned"; 

    $qid = mysql_query($qry); 
    if($qid->num_rows()){ 
     while($row = mysql_fetch_array($qid)){ 
      $day = $row["dayEarned"]; 
      $dowSum = $row["dayDownloaded"]; 
      $days[$day] = $dowSum; 

     } 
    } 

?>