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
中,您如何在此处存储数据?