【问题标题】:How to select how many users has different row values如何选择有多少用户具有不同的行值
【发布时间】:2019-12-14 20:27:52
【问题描述】:

我将 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

【问题讨论】:

  • 我认为你应该找到答案here。另外,在发布之前仔细检查您的代码,因为有一些错误;-)

标签: php mysql group-by


【解决方案1】:

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

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

您的代码可能如下所示:

$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...
}

【讨论】:

    【解决方案2】:

    您可以简单地将!= 用作,

    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>
    

    【讨论】:

    • 它不起作用。我用我当前的代码和错误更新了我的问题。
    • 不是 SQL 错误。这是 php 函数 number_format() 向您抛出错误。这是您可以参考php.net/manual/en/function.number-format.php 的文档,我可以知道您要实现的目标吗?
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多