簡體   English   中英

PHP / SQL-返回查詢結果和計數

[英]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”的單個結果,但是如果我將其取出,則會得到所有結果:

sql

我希望能夠獲取總行數並將其保存到變量中,同時還可以下拉結果以在屏幕上顯示。

我正在使用以下內容來獲取查詢:

$result = $database->query($sql);

我如何同時將查詢和計數同時將總結果保存到$ rowcount中? 如果您查看第二張圖片的左下角,SQL查詢瀏覽器將顯示查詢中的總數。 我想要那個號碼。 我怎么才能得到它?

謝謝

您可以獲取行數並生成PHP。 執行查詢后,您將得到結果,例如$res

您可以使用它來獲取行數。 如果使用mysqli庫,請使用

mysqli_num_rows ( $res );

如果您使用的是PDO,則必須運行2個查詢,一個查詢獲取值,另一個查詢獲取計數。

MySQLi的

PDO

這只是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM