Php mysql查询选择计数

Php mysql查询选择计数,php,mysql,Php,Mysql,我必须使用计数和分组,我有点困惑 我有两张桌子: 用户 id_user | firstname | lastname | genre | logo_src 目前,我的查询如下所示: 选择us.user\u id、us.user\u跟踪\u id、us.notification\u view、u.id\u user、, u、 名字,u.lastname,u.logo\u src,u.genre,us.id,us.date 来自用户u,用户u跟踪我们 其中us.user_id=“.$”会话['

我必须使用计数和分组,我有点困惑

我有两张桌子:

  • 用户

    id_user | firstname | lastname | genre | logo_src
目前,我的查询如下所示:

选择us.user\u id、us.user\u跟踪\u id、us.notification\u view、u.id\u user、,
u、 名字,u.lastname,u.logo\u src,u.genre,us.id,us.date
来自用户u,用户u跟踪我们
其中us.user_id=“.$”会话['user']['id_user']
和us.notification_viewed=0
和us.user\u stapping\u id=u.id\u user
由我们订购。日期描述
它返回:

John | Jonson | image1.png | male John | Jonson | image1.png |男
现在,我想在
user\u stacking.user\u ID
user\u stacking.user\u stacking\u ID
字段中接收包含相同ID的所有行的计数。

首先,我希望在这条语句之前的某个地方您正在检查/整理$\u seision['user']['ID\u user']值,否则您将使自己极易受到注射攻击

为了回答您的问题,您可以通过这样更改查询来检索这两个值(可能不是最有效的查询)

选择count(*)作为来自用户u、跟踪我们的用户的计数,其中u.user\u id=us.user\u跟踪\u id

(很抱歉输入错误,这是从电话发送的)

“现在我想在user\u stapping.user\u ID和user\u stapping.user\u stapping\u ID字段中接收包含相同ID的所有行的计数。”

我想你要找的是一个相等联接/内部联接查询

    select count(*) from users u, user_stalking us where us.user_id = ".$_SESSION['user']['id_user']."
 AND u.id_user=us.user_stalking_id

$\u会话
不需要消毒(尽管如果它是从客户端提供的值分配的,则应该是这样的值),因为它只能从应用程序中写入。什么是用户跟踪,听起来很恐怖?
SELECT  us.user_id, us.user_stalking_id, us.notification_viewed, u.id_user, u.firstname, u.lastname, u.logo_src, u.genre, us.id, us.date, 
    (SELECT COUNT(s.user_id) FROM user_stalking s WHERE s.user_id = u.user_id) AS stalking_count, 
    (SELECT COUNT(s2.user_id) FROM user_stalking s2 WHERE s2.user_stalking_id = u.user_id) AS being_stalked_count 
FROM    users u, user_stalking us 
WHERE   us.user_id = ".$_SESSION['user']['id_user']." 
    AND us.notification_viewed = 0 
    AND us.user_stalking_id = u.id_user ORDER BY us.date DESC
SELECT   COUNT(us.user_id)
FROM     users AS u
JOIN     user_stalking AS us ON (us.user_stalking_id = u.id_user)
WHERE    us.user_id = ".(int)$_SESSION['user']['id_user']."
          AND us.notification_viewed = 0
GROUP BY us.user_id
ORDER BY us.date DESC
    select count(*) from users u, user_stalking us where us.user_id = ".$_SESSION['user']['id_user']."
 AND u.id_user=us.user_stalking_id