【问题标题】:Count exploded string from mysqli DB using php使用 php 计算 mysqli DB 中的爆炸字符串
【发布时间】:2019-07-28 11:17:10
【问题描述】:

在使用 php 计算 mysqli 数据库中的一些数据时遇到问题。但它不计数任何东西并且只显示 11111。必须显示 usd 的总和。场地。请帮我解决这个问题。

统计数据有这样的:

115 pc. | 105 ml | 225 usd.
125 pc. | 130 ml | 345 usd.

等等。

所以我喜欢这样:

<?php 

$qry2 = "SELECT (howmuch) FROM $tabname WHERE send_ok='ok' ORDER BY $oid DESC";
$howmuch_result = $con->query($qry2);

$jimmy = explode(" | ", $how['howmuch'])[2];
$jimmy_n = str_replace(" usd.", " ", $jimmy);


while ($how = $howmuch_result->fetch_assoc()) {

 echo count($jimmy_n);
 } 

 ?>

【问题讨论】:

  • SELECT SUM(FIELD_NAME_HERE) AS howmuch FROM...
  • 您实际上是否将金额与其单位一起存储在同一列中?您应该规范化您的数据库并将它们拆分为单独的列和表。
  • @FrankerZ...谢谢,但不工作...也许我做错了什么...请举个例子

标签: php mysqli count explode


【解决方案1】:

运算符的正确顺序:

$qry2 = "SELECT (howmuch) FROM $tabname WHERE send_ok='ok' ORDER BY $oid DESC";
$howmuch_result = $con->query($qry2) or die (mysqli_error($con));

// Sum
$sum = 0;
while ($how = $howmuch_result->fetch_assoc()) {
    $jimmy = explode(" | ", $how['howmuch'])[2];
    $jimmy_n = str_replace(" usd.", " ", $jimmy);
    echo $jimmy_n;

    $sum += $jimmy_n;
} 
echo $sum;

【讨论】:

  • 谢谢,但我在您的示例中看不到“计数”操作。您的脚本只显示没有总和的所有数据。
  • 也可以使用fetch_all(MYSQLI_ASSOC)对数组中返回的元素进行计数,然后循环使用foreach
  • 我也强烈建议删除调试行or die (mysqli_error($con))。改用异常:mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  • @u_mulder...抱歉,您的更新什么也没做,只是削减了“美元”。来自字符串但未求和 ((
  • @Dharman... 请举一个关于 fetch_all(MYSQLI_ASSOC) 的例子.. 因为我不明白你
猜你喜欢
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多