【发布时间】:2023-03-28 10:32:01
【问题描述】:
我有以下代码:
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
{
echo "<tr>";
echo "<td>" . preg_replace('/[^0-9]+/','',$row['total']) . "</td>";
echo "</tr>";
}
我尝试做的是如果输出为空,则插入 (-) 字符。只有在没有值输出的情况下。
我试过了:
$result = $conn->query($query);
if ($result->num_rows > 0) {
$total = $total ?? "" ?: "-";
while($row = $result->fetch_assoc())
{
echo "<tr>";
echo "<td>" . $total . "</td>";
echo "</tr>";
}
这会将所有输出替换为 (-)。 我怎样才能做到这一点?请。谢谢你的帮助!
请注意,如果preg_replace('/[^0-9]+/','',$row['total']) 的结果为空,则应插入(-)字符。
输入是这样的:
100.
80.
70.
etc
预期的输出会是这样的:
Total
100
90
-
80
70
-
10
【问题讨论】:
-
@Roshan 你的意思当然是
if。但是,是的,你不需要正则表达式。在你的 for 循环中,检查$row['total']的值 -
我们有想要的输出,但我们可以输入
$row['total']的样本吗? -
然后在 while 循环中添加另一个 if else 语句,检查
$row['total']是否有值然后转换它的值,否则用"-"替换它。像这样的东西:if($row['total'] == " "){ echo $row['total']; }else{ echo "-"; } -
非数字行的值是什么?空的空间?
null?还有什么?你需要一个降序的for循环吗?如果没有 90 行,那么该位置的预期输出如何?也许您想在查询中添加/UNION 一些静态行。我们不知道。 -
我认为你应该尝试在数据库查询中使用,因为它会加快你的代码执行时间
标签: php