繁体   English   中英

MySQL计数(*)不返回具有相同输入的行

[英]MySQL count(*) not returning rows with same input

老实说,我不知道我正在做什么,花了至少1个小时寻找有同样问题的人,但找不到任何适合我/修复我的问题的人。

$auth_user = new USER();

$user_id = $_SESSION['user_session'];
$asd = $auth_user->runQuery("SELECT COUNT(*) FROM ticket_replies WHERE uid=:userid");
$asd->execute(array(':userid'=>$user_id));
$rows = $asd->fetchAll();
$numrows = count($rows);
echo $numrows;

甚至不确定这是否正确,但确实在页面上返回1。

$auth_user = new USER();

$user_id = $_SESSION['user_session'];

$asd = $auth_user->runQuery("SELECT uid, count(*) FROM ticket_replies WHERE uid=:uname");
$asd->execute(array(':uname'=>$user_id));
$ticketsrow = $asd->fetchAll();
$count = count($ticketsrow);
foreach($ticketsrow as $row9){
  echo $row9['uid'];
}

上面的代码返回'5'的值,如果表中的值是1,但显然我希望它以1,2和3的顺序返回。

非常感谢任何帮助,谢谢。 表

从哪里删除uid ..

只是在uid上应用groupBy,我不知道语法,但在简单的sql语句中就是这样

SELECT *,count(*) AS count FROM `ticket_replies` group By `uid` order by `count`

删除它也

$numrows = count($rows);

做这个

foreach($ticketsrow as $row9){
  echo $row9['uid'];
  echo $row9['count'];
}

你很高兴...

让我们解决您的第一个代码块的问题执行以下操作

$auth_user = new USER();

$user_id = $_SESSION['user_session'];
$asd = $auth_user->runQuery("SELECT COUNT(*) AS `count` FROM ticket_replies WHERE uid=:userid");
$asd->execute(array(':userid'=>$user_id));
$rows = $asd->fetchAll(); 

fetchAll函数返回一个数组,所以当你使用count($rows) ,你得到的是数组的大小而不是sql语句的结果。 要获取sql语句的结果,您需要执行以下操作

print_r($rows)
echo $rows[0]['count']; // print the result of the sql

要解决第二个代码块的问题,请执行以下操作

$auth_user = new USER();

$user_id = $_SESSION['user_session'];

$asd = $auth_user->runQuery("SELECT *, COUNT(*) AS `count` FROM ticket_replies GROUP BY `uid` ORDER BY `count`");
$asd->execute();
$ticketsrow = $asd->fetchAll();
print_r($ticketsrow);

foreach($ticketsrow as $row){
  echo $row['uid'];
  echo $row['count']
}

从以下查询中获取计数

select count(*) as count from FROM ticket_replies WHERE uid=:uname

修改你的代码就像这样

echo $ticketsrow[0]['count'];

由于您在where子句中传递userid,因此上述查询将始终返回一行。 或者只是尝试var_dump($ ticketsrow)以获得如何访问计数的线索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM