foreach($ rows as $ row) - 改变一些(不是全部)值

时间:2014-05-25 10:04:25

标签: php html arrays loops

我正在尝试显示一些我从SQL数据库中成功提取的数据。我有两位数据,人名和人的昵称。

如果此人有昵称,我想将其显示在数据中而不是名称中。如果他们没有昵称我想显示名称。我尝试使用这段代码,但它会影响所有行,而不仅仅是那些昵称字段不为空的行。

Cam有人提供一些建议吗?提前谢谢。

foreach ($rows as $row)
{
    $name = $row["name"];
    $nickname = $row["nickname"];

if($row["nickname"] !== NULL)
{
    $name = $nickname;
}

    echo "<tr>";    
    echo "<td> $name </td>";
    echo"</tr>";

1 个答案:

答案 0 :(得分:1)

您可以使用缩短if表单来选择要显示的变量,然后将其与html部分连接起来:

foreach ($rows as $row){
    $html = "<tr>";    
    $html .= "<td> " . (empty($row["nickname"]) ? $row["name"] : $row["nickname"] ) . " </td>";
    $html .= "</tr>";
    echo $html;
}

此外,您应该echo有效html才能正确显示(因为有些<tag>需要关闭</tag>您的html赢了有效,所以首先你可以连接一行中的所有内容然后echo它。)