在echo标签内检查数据库中的内容

时间:2018-06-29 09:14:51

标签: php sql if-statement

我正在使用while循环来回显表中数据库中的用户。现在,我想检查“ loggedin”列是否设置为1(如果是,我想在名称后面加上一些在线内容)。这是我的代码:

<tr>
    <th>Name</th>
    <th>Date</th>
    <th>Actions</th>
</tr>
<?php
while($row = mysqli_fetch_array($resultUsers))
{
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['date'] . "</td>";
    echo "<td><a class='btn btn-default' href='member.php?user=" . $row['id'] . "'>Bekijk</a> <a class='btn btn-default' href='member.php?user=" . $row['id'] . "&sendrequest=1s'>Stuur vriendschapsverzoek</a></td>";
    echo "</tr>";
}
?>

现在,我想添加某种代码来检查用户是否在线。像这样:

echo "<td>" . $row['name'] . "" . if($row['loggedin'] === 1) {"<p>Online</p>"} . "</td>";

4 个答案:

答案 0 :(得分:1)

您可以使用三元运算符:

echo "<td>" . $row['name'] . " " . ($row['loggedin'] === 1 ? "<p>Online</p>" : "") . "</td>";

答案 1 :(得分:1)

按原样编写html并将PHP代码附加到html的最优选和更好的方法,例如:

<tr>
    <th>Name</th>
    <th>Date</th>
    <th>Actions</th>
</tr>
<?php while ($row = mysqli_fetch_array($resultUsers)) { ?>
    <tr>
        <td><?php echo $row['name']; ?></td>;
        <td><?php echo $row['date']; ?></td>;
        <td>
            <a class='btn btn-default' href='member.php?user=<?php echo $row['id']; ?>'>Bekijk</a> <a class='btn btn-default' href='member.php?user=<?php echo $row['id']; ?>&sendrequest=1s'>Stuur vriendschapsverzoek</a>
            <?php if ($row['loggedin'] === 1) { ?>
                <p>Online</p>
            <?php } ?>
        </td>
    </tr>;
<?php } ?>

答案 2 :(得分:0)

您可以使用三元运算符。试试这个:

echo "<td>" . $row['name'] . "" . (!empty($row['loggedin']) && $row['loggedin'] === 1) ? '<p>Online</p>' : '' . "</td>";

希望这会有所帮助。

答案 3 :(得分:0)

三元数需要使用三元运算符。

echo "<td>" . $row['name'];
echo $row['loggedin'] === 1 ? '<p>Online</p>' : '';
echo "</td>";

对于一个行代码

echo "<td>" . $row['name'] . "" . ($row['loggedin'] === 1 ? "<p>Online</p>" : '' ) . "</td>";

看看是否设置好总是好(isset($ row ['whatevercolumn'])) 不要使用empty()检查,默认情况下,如果为空,则将抛出false。因此不必添加额外的功能来消耗您的资源。