仅在搜索过滤器中自动求和 - 而不是整个数据库

时间:2015-11-12 17:43:10

标签: php html

<table id="resultTable" data-responsive="table" style="text-align: left; width: 400px;" border="1" cellspacing="0" cellpadding="4">
<thead>
    <tr>
        <th> Total </th>
        <th> Deposit </th>
    </tr>
</thead>
<tbody>
<?php
    $result = $db->prepare("SELECT * FROM student");
    $result->execute();
    for($i=0; $row = $result->fetch(); $i++){
        ?>
            <tr class="record">
                <td><?php echo $row['email']; ?></td>
                <td><?php echo $row['contact']; ?></td>
            </tr>
        <?php
    }
?>
</tbody>
<thead>
    <tr>
        <th> Total </th>
        <th> 
            <?php
                $results = $db->prepare("SELECT sum(contact) FROM student");
                $results->execute();
                for($i=0; $rows = $results->fetch(); $i++){
                    echo $rows['sum(contact)'];
                }
            ?>
        </th>
    </tr>
</thead>
</table>

这是我的代码。我只想搜索某个单词,该项目将生成总和,因为它现在显示表格中行的全部总和。我希望搜索生成总和,你可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

虽然不清楚你在问什么,但这是我能想象到的两种情景:

匹配&#34;仅限某个字&#34;:

的行数
$results = $db->prepare("SELECT sum(contact) FROM student");

首先,sum is a GROUP BY Aggregate function。在任何普通的情况下,这都不是你想要的。

将您的查询更改为:

$results = $db->prepare("SELECT count(*) FROM student WHERE word = :word");
$results->execute( array( ":word" => "certain" ) );

这会计算certain列中word后返回的行数。

列的总和

将您的查询更改为以下内容:

$results = $db->prepare("SELECT ( number1 + number2 ) as totalNumber, * FROM student");

这将选择每一行,并在名为totalNumber的结果集中添加一个额外的列,该列保存列+number1的总和(number2)。< / p>