获取行数和回声

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取行数和回声相关的知识,希望对你有一定的参考价值。

我有一个总共有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”而不是“No New Pickups”,我怎么能让这个工作?如果状态不是数字1,我​​仍然希望显示“No New Pickups”。

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在值为1时值为1,在值为false时值为0。你SUM()了一堆零和零。

所以它在你的情况下就像这样。 (我没有调试过这段代码。)

$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;

以上是关于获取行数和回声的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC回声抵消模块简要分析

回声消除(Acoustic Echo Cancellation)中遇到的几个常见问题思考

如何在android中为wav文件添加回声效果?

Webonyx/Graphql-php 入门:如何在 cURL 中获取 API 的响应而不会从 API 实现中获得回声?

语音处理基于matlab GUI音乐多次回声图谱显示含Matlab源码 1733期

在Jenkins控制台输出中回声