如何使用 PHP 中的条件处理数据库中数据的显示


How to handle display of data from database using a condition in PHP?

我有一个名为帐户的表。

表:帐户

+---------+---------------------+-----------+
| user_id | email               | u_name    |
+---------+---------------------+-----------+
|      63 | Vicman@gmai.com     | Pross     |
|      64 | Pink@gmai.com       | Pross     |
|      73 | Victor@gmail.com    | Victorss  |
|      74 | ifeco_man@yahoo.com | Ifecosss  |
+---------+---------------------+-----------+

但是我想将我页面中u_name="Pross"的表格中的所有显示u_name更改为"":

+---------+---------------------+-----------+
| user_id | email               | u_name    |
+---------+---------------------+-----------+
|      63 | Vicman@gmai.com     | No        |
|      64 | Pink@gmai.com       | No        |
|      73 | Victor@gmail.com    | Victorss  |
|      74 | ifeco_man@yahoo.com | Ifecosss  |
+---------+---------------------+-----------+

但是我这里的代码将所有行替换为"否"。似乎我的条件的位置是错误的。这是我的代码PHP 从数据库中获取数据。

<!--############# TABLE CONTENT ##############-->
<tbody>
<?php 
while($row = mysql_fetch_array($s1)) {
    # Columns from DB
    $db_id = $row['user_id'];
    $db_email = $row['email'];
    $db_uname = $row['u_name']; 
    # Condition to handle display of u_name row
    if($db_uname == "Pross") {
        $db_uname_edit = "No";
    }
?>
<tr>
    <td><?php echo $db_id ?></td>
    <td><?php echo $db_email ?></td>
    <td><?php echo $db_uname_edit ?></td>
</tr>
<?php } ?>
</tbody>
<!--##########################################-->

但是不需要的输出是:

+---------+---------------------+-----------+
| user_id | email               | u_name    |
+---------+---------------------+-----------+
|      63 | Vicman@gmai.com     | No        |
|      64 | Pink@gmai.com       | No        |
|      73 | Victor@gmail.com    | No        |
|      74 | ifeco_man@yahoo.com | No        |
+---------+---------------------+-----------+

为什么?任何人都可以帮助我上面的代码吗?谢谢

你应该在 else 部分中将 $db_uname_edit 的值设置为 $db_uname:

if($db_uname == "Pross") {
    $db_uname_edit = "No";
} else {
    $db_uname_edit = $db_uname;
}
# Condition to handle display of u_name row
if($db_uname == "Pross") {
    $db_uname_edit = "No";
}
else {
    $db_uname_edit = $db_uname;
}

这应该有效。

这是缩短版,您不需要if子句:

<td><?php echo $db_uname == 'Pross' ? 'No' : $db_uname ?></td>

"if"语句更改为:

 if($db_uname === "Pross") {
        $db_uname_edit = "No";
    }

比较字符串时,应使用"==="运算符而不是"=="

您需要在

条件中添加else部分if如果条件不匹配,则代码转到其他条件

if($db_uname == "Pross") {
    $db_uname_edit = "No";
} else {
    $db_uname_edit = $db_uname;
}

或更好的用户ternary运算符以减少代码

$db_uname_edit = $db_uname == "Pross" ? "No" : $db_uname;

您可以在DB查询中执行此操作,这将有利于性能

select user_id, email, IF(u_name = 'Pross', 'No', u_name) AS u_name FROM account