[英]PHP/SQL - Returning query results and counts
SQL / PHP新手。 我查詢了許多問題,但似乎沒有一個問題可以幫助我獲得所需的信息。
我有一個數據庫的前端,該數據庫根據復選框的狀態運行SQL查詢。 我希望SQL查詢通過單個查詢返回結果和結果計數(到變量中)。
如果我運行:
SELECT DISTINCT
event.event_id as 'Event ID',
event.event_group_id as 'Group ID',
abs_path.abs_path as 'Path\Filename',
FROM
event.event_group
LEFT JOIN event.event using (event_group_id)
LEFT JOIN file_info.abs_path using (abs_path_id)
WHERE event.timestamp >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)
LIMIT 40
我將所有結果發送給查詢。 但是如果我運行:
SELECT DISTINCT
count(event.event_id) as 'rowcount',
event.event_id as 'Event ID',
event.event_group_id as 'Group ID',
abs_path.abs_path as 'Path\Filename',
FROM
event.event_group
LEFT JOIN event.event using (event_group_id)
LEFT JOIN file_info.abs_path using (abs_path_id)
WHERE event.timestamp >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)
LIMIT 40
我只得到第一列“ rowcount”的單個結果,但是如果我將其取出,則會得到所有結果:
我希望能夠獲取總行數並將其保存到變量中,同時還可以下拉結果以在屏幕上顯示。
我正在使用以下內容來獲取查詢:
$result = $database->query($sql);
我如何同時將查詢和計數同時將總結果保存到$ rowcount中? 如果您查看第二張圖片的左下角,SQL查詢瀏覽器將顯示查詢中的總數。 我想要那個號碼。 我怎么才能得到它?
謝謝
這只是sql的解決方案,可能不是更好的解決方案,但可以嘗試一下;)
SELECT DISTINCT
event.event_id as 'Event ID',
event.event_group_id as 'Group ID',
abs_path.abs_path as 'Path\Filename',
@cnt:=@cnt + 1 as cnt
FROM
event.event_group
LEFT JOIN event.event using (event_group_id)
LEFT JOIN file_info.abs_path using (abs_path_id),
(SELECT @cnt:=0) var
WHERE event.timestamp >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)
LIMIT 40
您可以通過最后一條記錄的cnt
獲取查詢結果計數。
使用COUNT
函數時,您的查詢會自動分組。
嘗試使用$rowcount = $result->fetchColumn();
並且不要在SQL中COUNT
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.