如果结果为空,则插入一个字符(-)

时间:2019-01-24 08:27:54

标签: php

我有以下代码:

 $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

2 个答案:

答案 0 :(得分:2)

您可以检查总价值,如果总价值为空,则将其替换。例如:

actions:
 - utter_greet
 - action_route
 - utter_goodbye
entities:
 - location
 - travelmode
intents:
 - goodbye
 - greet
 - address
slots:
 location:
  type: text
 travelmode:
  type: text
templates:
 utter_goodbye:
  - text: Güle güle
  - text: Kendine iyi davran
  - text: Allaha emanet ol
 utter_greet:
  - text: Merhaba! Bugün nereye gitmek istersin?
  - text: Merhaba! Seni nereye götürüyüm?
 utter_default:
  - text: Seni tam anlamadım gideceğin yeri tekrar söyleyebilirmisin
  - text: Nasıl tam anlamadım. Bir daha söyler misin?

答案 1 :(得分:0)

您还可以在mysql中使用case语句

SELECT (CASE
    WHEN total regexp '^[0-9]+$'  THEN total

    ELSE '-' END) as total
FROM `tbl_order`

其中regexp '^[0-9]+$'与变量total是否为numeric匹配

使用大小写,我们检查总计是否为数字,然后打印total,否则打印-