Php 使用Count函数统计新的答复

Php 使用Count函数统计新的答复,php,sql,count,Php,Sql,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: ti

您好,我正在尝试从管理员处获取未读回复的数量。那些是支持票。有三张如下表

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     user@user.com    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、 当管理员回复票证表获得已回复状态和lastreply获得新日期时间时


检查图像:prntscr.com/eo0pj2

我确信它不是
给用户id
的,而是
第一个表中的
id
,所以像这样更改

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

假设您没有提供确切的表名,这就是为什么它是
第一个表
而不是
第一个表

的原因,我确信它不是
给用户id
的,而是
第一个表
中的
id
,所以请这样更改

$query = "SELECT COUNT(*) FROM `first_table` WHERE `id`
='".$_SESSION['user_id']."' AND `read` = 0";
假设您没有提供确切的表名,这就是为什么它不是
第一个表的原因

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

  $query = "SELECT COUNT(*) FROM first table 
  WHERE first_table.id =".$_SESSION['user_id']." AND `read` = 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";

由于问题中没有给出太多信息(问题中没有提供表之间的逻辑连接),因此如果
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";

根据我对问题和表结构的理解,您应该使用
内部联接来实现这一点。并对您的表进行一些更改

例如:

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";
第一个\u表应该像第二个\u表一样包含trackid。此票证id将是您获取特定用户中管理员所有未读回复的密钥


但这将根据您存储邮件和回复表的方式进行更改。

根据我对您的问题和表结构的理解,您应该使用
内部联接来完成此操作。并对您的表进行一些更改

例如:

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";
第一个\u表应该像第二个\u表一样包含trackid。此票证id将是您获取特定用户中管理员所有未读回复的密钥



但这将根据您存储邮件和回复到表中的方式进行更改。

您如何在不同的表中存储邮件和回复?请提供表名。请明确指定内容。例如,“但是没有成功”是什么意思?(发布实际错误或获得的结果)…我添加了更多详细信息,请查看。您如何将消息和回复存储在不同的表中?请提供表名。请明确说明。例如,“但是没有成功”是什么意思?(发布实际错误或获得的结果)…我添加了更多详细信息,请查看。尝试没有结果,我已经更好地描述了表格,现在请查看。谢谢你advance@Andrew11我已经编辑了我的答案,在您的表格中有一些常见的字段,但您没有解释它们之间的逻辑连接,例如,它们的意思是什么是
ticket\u read
->
lu
字段。?它是如何更新的?它有更新吗?请检查我是否有更新,并有更好的解释。同时检查图像。这就是我的表在创建票证时更新的方式,并获取新的reply.PHP版本5.4.45我可以这样做:
尝试没有结果,我已经更好地描述了表,请看一看。谢谢你advance@Andrew11我已经编辑了我的答案,在您的表格中有一些常见的字段,但您没有解释它们之间的逻辑连接,例如,它们的意思是什么是
ticket\u read
->
lu
字段。?它是如何更新的?它有更新吗?请检查我是否有更新,并有更好的解释。同时检查图像。这就是我的表在创建票证时更新的方式,获取新的reply.PHP版本5.4.45我可以这样做吗:
我添加了更多细节请看。我添加了更多细节请看。我添加了更多细节请看。@Andrew11表
中的
lu
是什么?您如何在这里存储数据?我添加了更多细节请看。@Andrew11什么是
lu
在表
ticket\u read
中,您如何在此处存储数据?