0
我有這個疑問使用MySQL查詢結果來創建FusionCharts的圖表
SELECT DISTINCT (sl.smsstatus), sl.sms_prefix, sum(sl.parts) AS sum
FROM sms_log sl, sms_transaction st
WHERE
st.user_id = 552
AND st.customer_id = 1
AND st.sendtime >= 1328050800
AND st.sendtime <= 1328309999
AND st.sms_trans_id = sl.trans_id
GROUP BY sl.sms_prefix
結果如下:
smsstatus | sms_prefix | sum
----------+------------+-----
rejected | 963 | 2
received | 971 | 2
我想根據國字頭和號碼顯示在融合圖這一結果的短信。
這是我的代碼來獲取結果並顯示在圖表上,但它有一個問題,它只顯示第一行,$ total值出現錯誤= 3。
我需要顯示在圖表上(在XAxis「sms_prefix」上,值是'sum'的數量)。
感謝和問候,
$res_smsstat_status = $oSMSStatHandlerCnf->get_stat_country($_user_id, $_customer_id, $s_start_time, $s_end_time);
while ($smsstat_status_row = mysql_fetch_assoc($res_smsstat_status)) {
$total = $total + $smsstat_status_row['sum'];
$strXML = "<graph caption='".$oLangHandler->tr("Traffic Graph")."' xAxisName='".$oLangHandler->tr("Delivery Status")."' yAxisName='".$oLangHandler->tr("SMS Amount")."' decimalPrecision='0' formatNumberScale='0'>";
if ($total > 0) $strXML .= "<set name='".$smsstat_status_row['sms_prefix']."' value='".$total."' color='#87CEFA'/>";
$strXML .= "</graph>";
echo renderChartHTML("chart/FusionCharts/Column2D.swf", "", $strXML, "myNext", 790, 300);
}
刪除''從DISTINCT(sl.smsstatus)DISTINCT''和'添加sl.smsstatus '在'GROUP BY'聲明中... – 2012-02-03 13:27:41
請使用'JOIN'關鍵字代替笛卡爾連接。另外,你真的想要在你的循環內調用renderChartHTML()*嗎? – DaveRandom 2012-02-03 13:28:27
所以你說的問題是,當你直接在MySQL中執行相同的查詢時,你會得到發佈的結果,但是當你在PHP中執行它時,你會得到與MySQL不同的結果。是對的嗎?你確定你連接到正確的數據庫嗎?你確定你的查詢完全一樣嗎? – Travesty3 2012-02-03 13:43:32