PHP - Как найти дату и получить общую сумму - PullRequest
0 голосов
/ 19 апреля 2020

Моя проблема в том, что у меня есть таблица с текстовым полем поиска, и я могу получить данные c из этой таблицы, используя текстовое поле, в то же время у меня есть другое текстовое поле, чтобы получить общую сумму денег в столбце деньги, моя проблема когда я ищу указанные данные c и после этого пытаюсь получить сумму указанных данных c, это дает мне сумму всех данных в столбце, а не отфильтрованных данных, и я пытался использовать запросы одновременно, но я не смог этого сделать,

Это скриншот формы и текстовых полей

Примечание Я использую адресный столбец в этом примере только для тестирования

Это HTML с PHP First кодом для текстового поля Searching с кнопкой и Таблица:

<?php
    if(isset($_POST['search'])){
        $search_by_word = $_POST['search'];
        $query = "SELECT * FROM test WHERE firstname LIKE '%$search_by_word%' ";
    }else{
        $query = "SELECT * FROM test";
    }
    $query_conn = mysqli_query($connection, $query);
?>  
        <form action="" method="POST">
               <div class="col-md-6">
                   <input type="text" name="search" class="form-control" placeholder="Search">
               </div>
               <div class="col-md-6 text-left">
                   <button class="btn btn-primary">Search</button>
               </div>
            </form>
            <br><br>
        <table class="table table-bordered table-hover">
               <thead>
                   <tr>
                        <th>Id</th>
                        <th>First Name</th>
                        <th>Last Name</th>
                        <th>Address</th>
                        <th>Email</th>
                    </tr>
               </thead>
                <tbody>
                   <?php
                    while($row = mysqli_fetch_assoc($query_conn)){
                        $user_id = $row['id'];
                        $firstname = $row['firstname'];
                        $lastname = $row['lastname'];
                        $address = $row['address'];
                        $email = $row['email'];

                        echo "<tr>";
                        echo "<td>$user_id</td>";
                        echo "<td>$firstname</td>";
                        echo "<td>$lastname</td>";
                        echo "<td>$address</td>";
                        echo "<td>$email</td>";
                        echo "</tr>";
                    }
                    ?>
                </tbody>
            </table>

А вот мой Второй код для Всего :

        <?php
            if(isset($_POST['submit'])){

                $query = "SELECT sum(address) AS totalofmoney FROM test";
                $query_conn = mysqli_query($connection, $query);
                $data = mysqli_fetch_assoc($query_conn);
                $total = "Total of Salary: " . $data['totalofmoney'];
            }else{
                $total = "Total of Salary: ";
            }  
        ?>

    <table class="table table-bordered table-hover">
       <thead>
            <tr>
                <th>Total</th>
            </tr>
       </thead>
        <tbody>
           <?php
                echo "<tr>";
                echo "<td>$total</td>";
                echo "</tr>";
            ?>
        </tbody>
    </table>
    <div class="row">
            <div class="col-md-12">
                <form action="search_table3.php" method="POST">
                       <div class="col-md-6 text-left">

                           <button name="submit" type="submit" class="btn btn-primary">Sum</button>

                           <a href="" class="btn btn-primary">Print</a>
                       </div>
                    </form>
            </div>
        </div>

Заранее спасибо за вашу помощь.

1 Ответ

0 голосов
/ 19 апреля 2020

Вы ничего не фильтруете в запросе суммы, вам нужно, чтобы отфильтрованные данные были в той же форме, что и сумма, и добавьте предложение where к запросу, который вы делаете в базу данных:

$search_by_word = $_POST['search'];
SELECT sum(address) AS totalofmoney FROM test WHERE firstname LIKE '%$search_by_word%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...