为了账号安全,请及时绑定邮箱和手机立即绑定

如何选择有多少用户具有不同的行值

如何选择有多少用户具有不同的行值

PHP
largeQ 2022-06-17 16:45:09
我有名为“空缺”的 ROW - 它显示了某人去度假的次数。一些具有值“0”。有些值“1”甚至“30”。没关系。但是,我想选择每个“空缺”行不为 0 的用户。我该怎么做?    User1: Vacancy row 0    User2: Vacancy row 0    User3: Vacancy row 5    User4: Vacancy row 8    User5: Vacancy row 6000    User6: Vacancy row 100    User7: Vacancy row 0    _______    Total users who went to vacancy: 4.  How can I echo number 4? $sql = "SELECT Vacancy FROM users WHERE Vacancy > 0";?我当前的代码:$sql25 = "SELECT Vacancy AS value_vacancy FROM users WHERE Vacancy > 0";$result = $con->query($sql24);if ($result->num_rows > 0) {    while($totalvacancy = $result->fetch_assoc()) {$output25 = $totalvacancy ["value_vacancy"];    }<html><p><?php echo number_format("$output25",0,",",".");?> people who went to vacancy</p></html>有错误Warning: number_format() expects parameter 1 to be float, string given in on line
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您的代码正在遍历查询结果并将 的值分配给vacancy变量(可能未在循环外声明)。这不是您想要的(您实际上应该只计算查询返回的行数)。


无论如何,我建议使用聚合查询来计算空缺用户的总数。这样的查询(没有子句的聚合group by)保证总是只返回一行,具有预期的计数。这避免了循环遍历结果的需要。让您的数据库为您完成聚合工作也比在 php.ini 中获取和循环更有效。


您的代码可能如下所示:


$sql25 = "SELECT COUNT(*) AS cnt_vacancy FROM users WHERE Vacancy > 0";

if ($result = $con->query($sql24)) {

    $row = $result->fetch_assoc();

    <html><p><?php echo $row['cnt_vacancy']; ?> people went to vacancy</p>

</html>

} else {

    # error handling...

}


查看完整回答
反对 回复 2022-06-17
?
FFIVE

TA贡献1797条经验 获得超6个赞

您可以简单地使用!=as,


SELECT * FROM user WHERE vacancy != 0;

对于您的问题,请尝试一下。


$query = "SELECT sum(vacancy) as total FROM user WHERE vacancy != 0";

$result = $con->query($query);

if(mysqli_num_rows($result) > 0){

    $total = mysqli_fetch_assoc($result);

    $total = floatval($totle['total']);

}

<html>

    <p><?php echo number_format($total,0,",",".");?> people who went to vacancy

    </p>

</html>


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号