2017-03-24 28 views
1

您好,我正在嘗試從管理員處獲取未讀回覆的數量。那些是支持票。有三個表如下。用COUNT函數計算新答覆

table: supportticket 

id | date | username | email | status | subject | message | adminreply | 
admindate | read 


table: ticketreplies 

id | tid | userid | name | email | date_added | message | admins 


table: tickets 

id | userid | trackid | name | email | date_added | title | message | 
status | urgency | lastreply 


table: ticket_read 

id | idt | lu 

我嘗試這樣做:

$query = "SELECT COUNT(*) FROM first table WHERE to_user_id 
=".$_SESSION['user_id']." AND `read` = 0"; 

但沒有成功。希望有更多的想法。我是新來的。

*when ticket is created by user this table gets update: 


tickets 

id | userid | trackid | name | email  | date_added  
| title | message | status | urgency | lastreply 
456  2   123-456  user  [email protected] 3/23/2017 
15:52  test   test   open   medium   
3/24/2017 15:52 



* when admin replies 

ticketreplies: 

id | tid | userid | name | email |  date_added   
|  message  | admins 0   456   0         
3/23/2017 15:52   replied to test   1 

ticket_read 

id | idt | lu 
0  456  1 

p.s.當管理員回覆門票表得到的地位回答lastreply得到新的日期時間

支票影像:prntscr.com/eo0pj2

+0

你如何在不同的表中存儲消息和回覆? –

+0

請提供表名。 –

+0

請以明確的方式說明事情。例如,你的意思是「但沒有成功」? (發佈實際的錯誤或獲得的結果)... – etsa

回答

0

我肯定它不是to_user_ididfirst_table這樣

$query = "SELECT COUNT(*) FROM `first_table` WHERE `id` 
='".$_SESSION['user_id']."' AND `read` = 0"; 
所以更改

假設你沒有提供確切的表名爲什麼它是first table沒有first_name

+0

我加入更多的細節請看看。 – Andrew11

0

嘗試這樣

$query = "SELECT COUNT(*) FROM first table 
    WHERE first_table.id =".$_SESSION['user_id']." AND `read` = 0"; 
0

由於沒有太多的信息,在問題(表之間沒有邏輯連接中的問題提供)給出,那麼萬一id就是你可以試試這個票的參考數字。

$query = "SELECT COUNT(*) FROM supportticket 
INNER JOIN tickets 
ON supportticket.id=tickets.id 
WHERE tickets.userid =".$_SESSION['user_id']." AND supportticket.read = 0"; 

或本

$query = "SELECT COUNT(*) FROM supportticket 
INNER JOIN ticketreplies 
ON supportticket.id=ticketreplies.id 
WHERE ticketreplies.userid =".$_SESSION['user_id']." AND supportticket.read = 0"; 
+0

嘗試沒有結果,我現在更好地描述表格,請看看。在此先感謝 – Andrew11

+0

@ Andrew11我編輯了我的答案,有你的表上常見的字段,但你沒有解釋,例如他們是如何*在邏輯上相互連接,例如什麼是'ticket_read'-> '路'字段。?它如何得到更新?它會被更新嗎? –

+0

請檢查我已經更新了一點點更好的解釋。也檢查圖像。多數民衆贊成我的表得到更新時,機票創建,並獲得新的答覆。 – Andrew11

0

當我明白你的問題和表的結構,你應該使用INNER JOIN這一點。並對錶格進行一些更改。

例子:

SELECT COUNT(*) as admin_replied FROM first_table 
INNER JOIN second_table ON first_table.trackid = second_table.trackid 
WHERE user_id=".$_SESSION['user_id']." AND `read` = 0"; 

的first_table應該包含的TrackID爲您second_table一樣。此憑單編號將成爲您在特定用戶中獲取管理員所有未讀回覆的關鍵。

但是,這將根據您如何存儲郵件和回覆您的表格而發生變化。

+0

我添加更多的細節請看看。 – Andrew11

+0

@ Andrew11什麼是'ticket_read'表中的'lu',以及如何在這裏存儲數據? –