[英]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.