我有以下代码从MySQL表中提取数据。我想在表格单元格中显示某些值(例如Tnex> = 40,Mode> = 20等)为null。当我尝试在SQL查询中使用where子句进行操作时,不显示不符合条件的行在桌子上。相反,我需要显示行,但只显示要为null或为空的值。
例如,在某一行中,如果“ Tnex”> = 40,则表单元格应该为空。我怎样才能做到这一点?我想显示null而不是某些数字(例如,如果我的标准是“ Tnex”,例如Tnex <= 10,那么我想显示1到10的值为“ null”,而只显示其余部分)值。我该怎么做?
<table class="tbnar">
<tr>
<th>Date</th>
<th>Snex</th>
<th>Tnex</th>
<th>Mode</th>
</tr>
<?php
include ("config.php");
$sql = "SELECT Date, Snex, Tnex, Mode FROM datatb";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc())
{
echo "<tr><td>" . $row["Date"] . "</td><td>" . $row["Snex"]. "</td><td>". $row["Tnex"]. "</td><td>". $row["Mode"]. "</td></tr>";
}
</table>
答案 0 :(得分:4)
您可以使用case
表达式:
SELECT Date,
Snex,
CASE WHEN Tnex < 40 THEN Tnex END AS Tnex,
CASE WHEN Mode < 20 THEN Mode END AS Mode
FROM datatb
答案 1 :(得分:2)
检查条件并将变量设置为字符串NULL
,空格或值,然后使用该变量。在这种情况下,$Tnex
:
$Tnex = ($row["Tnex"] >= 40) ? ' ' : $row["Tnex"];
echo "<tr><td>" . $row["Date"] . "</td><td>" . $row["Snex"] . "</td><td>" . $Tnex . "</td><td>" . $row["Mode"] . "</td></tr>";