簡體   English   中英

如何在php中拆分和求和逗號分隔的多行值

[英]How to split and sum comma separated multiple line values in php

我有一個問題。 如何在 php.ini 中拆分和總結多個逗號分隔的行值。 按照我的mysql表截圖在此處輸入圖片說明

這里是我的日期明智里程過濾頁面

在此處輸入圖片說明

我想在用戶輸入日期和日期時輸出英里列,如下所示。

IA      59.62
MD       7.88    
IL     359.22

Total Miles : 426.72

How can i achieve this in php? Please help me.


我的 php 代碼:

<?php
// Range.php
if(isset($_POST["From"], $_POST["to"]))
{
    $conn = mysqli_connect("localhost", "root", "", "truckinvo");

    $result = '';
    $query = "SELECT * FROM tble_states_miles WHERE order_date BETWEEN '".$_POST["From"]."' AND '".$_POST["to"]."'";
    $sql = mysqli_query($conn, $query);
    ?>
    <table class="table table-bordered">
    <tr>
Total Miles from the date between <?php echo $_POST["From"]; ?> to <?php echo $_POST["to"]; ?>  
<th width="40%">Miles</th>
    </tr>
    <?php
    if(mysqli_num_rows($sql) > 0)
    {
        while($row = mysqli_fetch_array($sql))
        {
            ?>
            <tr>


            <td>
            <?php 

            echo nl2br($row["miles"]); ?></td>
            </tr>
            <?php
        }
    }
    else
    {
    ?>

        <tr>
        <td colspan="5">No Data Found</td>
        </tr>
        <?php
    }
    ?>
    </table>
    <?php   echo $result; }
?>

我嘗試使用以下代碼進行拆分

<?php
    $f1 = preg_replace('/,\\s*/', "', '", $row["miles"]);
$f2 = preg_replace('/\\n/', "'), \n('", $f1);
?>
    <?php echo $f2;  ?>

每行拆分,將每一行拆分為多個部分,顯示名稱並匯總值。 嘗試:

循環前:

<?php $totalMiles = 0 ?>

代替:

<td>
<?php 
  echo nl2br($row["miles"]); ?>
</td>

在循環:

<td>
<?php
    // iterate per state
    foreach (explode("\n", $row['miles']) as $stateRow) {
        // prepare the parts, we don't want any whitespace
        $stateParts = array_filter(array_map('trim', explode(',', $stateRow)));

        // the state's name (the first part)
        $stateName = $stateParts[0];

        // sum everything in the array
        // this works, because the name will get cast to "0"
        // try it: echo (int) 'IL';
        $stateMiles = array_sum($stateParts);

        // total mileage sum
        $totalMiles += $stateMiles;

        // display the result, any way you want
        printf('%s miles %.2f', $stateName, $stateMiles);
    }
?>
</td>

循環后:

Total miles <?= $totalMiles ?>

並且請使用准備好的語句,您的應用程序是不安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM