php - 获取行数和回显

标签 php mysql mysqli

我有一个总共 10 行的 MySQL 表,其中 5 行的状态设置为数字 1,其他行设置为 0。我想要实现的是显示总计数的最简单方法状态设置为数字 1 的行。

<?php echo (empty( $this->fetchData[2][0]['pickup_status'] ) ? 'No New Pickups' : $this->fetchData[2][0]['pickup_status'] ); ?>

上面的代码应该显示“5”而不是“没有新的皮卡”,我怎样才能做到这一点?如果状态不是 1,我仍然希望显示“无新取件”。

HTML 代码

<div class='dashicon'>

            <a href='<?php echo _URL_PATH; ?>packages/pickups'>
            <span class="notify-badge">PHP ECHO</span>
                <img src='<?php echo _URL_PATH . IMGS_PATH; ?>bicon_pickups.png' />
            </a>
        </div>

        <div class='dashname'>
            Pickup Requests
        </div>

        <div class='dashdesc'>
            Manage package pickup request details
        </div>

    </div>

<?php

$result=mysqli_query("SELECT * FROM sysPickupRequest WHERE pickup_status = 1");
$data=mysqli_fetch_assoc($result);
echo $data['total'];

?>

最佳答案

您的查询没有达到您想要的效果。

 SELECT * FROM sysPickupRequest WHERE pickup_status = 1;

这可能返回多行的详细信息,也可能不返回任何行。它返回的是任何东西的计数。你想要这样的东西。它返回一行和一列,即您需要的计数。

 SELECT COUNT(*) status1 FROM sysPickupRequest WHERE pickup_status = 1;

或者,如果您想要总行数和状态为 1 的行数,您可以这样做:

 SELECT SUM(pickup_status = 1) AS status1, COUNT(*) AS total FROM sysPickupRequest;

它之所以有效,是因为表达式 pickup_status = 1 为 true 时值为 1,为 false 时值为 0。您SUM()计算了一堆 1 和 0。

所以在你的情况下它是这样工作的。 (我还没有调试过这段代码。)

$query = "SELECT SUM(pickup_status = 1) AS status1, COUNT(*) AS total FROM sysPickupRequest;"
$status1 = 0;
if ($resultSet=mysqli->query($query)) {
     if ($row=$resultSet->fetch_assoc($resultSet)) {
         $status1 = $row['status1'];
     } else die 'fetch error';
} else die 'query error';
$pickupStatus = $status1 != 0 ? $status1 :  'No New Pickups';
echo $pickupStatus;

关于php - 获取行数和回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54700018/

相关文章:

php - mysqli_query的奇怪错误和结果

php - 如何安全地转义 php for mysql 中的输入数据

php - 使用 PHP PEAR MAIL 发送多个 CC 和 BCC

MySQL按计数顺序左连接2个表

php - 如何使用 php 类和对象与 mysql 数据库通信 - oop 初学者

php - 过期的链接

带有 IN 子句的 MySQL 内部连接

php - 在非对象上调用成员函数 bind_param()

php - 计算MySQL中的特定输入

PHP - 从具有空值的日期列插入日期时遇到问题。值在数组中