如果一个值存储在数据库中,我可以回显它,但如果没有存储值,我怎么能省略整个标记?

时间:2017-07-23 00:55:55

标签: php mysql database phpmyadmin

echo "<a href=\"{$row['link']}\" class=\"button\">Website link</a>";

这将显示一个带有“按钮”类的锚标记,href值将是数据库中的任何内容。如果我没有存储在数据库中的链接,我不想在渲染的html中出现任何内容,但是使用此示例按钮仍会显示,它只是没有href值。

我试过这样做:

echo "{$row['link']}";

在数据库中,'link'值为:

<a href="#" class="button">Website link</a>

我的问题是我不喜欢从数据库中存储和提取HTML代码。此外,如果我在数据库中将链接值保留为空,则由于“按钮”类,按钮的一部分仍然可见。

3 个答案:

答案 0 :(得分:0)

您只需使用isset()

测试数据
  

PHP:isset()函数。 isset()函数用于检查是否   设置或不设置变量。如果已经使用unset()取消了变量   功能,它将不再被设置。 isset()函数返回false   如果测试变量包含NULL

if (isset($row['link'])){
    echo "<a href=\"{$row['link']}\" class=\"button\">Website link</a>";
}

当你对var可能为空时使用条件时总是使用isset()因为如果不这样做会导致PHP通知错误

如果您使用NULL将值存储在数据库中,那么您不需要使用isset()!empty()

  

确定变量是否为空。如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在,则empty()不会生成警告。也将在NULL上返回TRUE。

if (!empty($row['link'])){
    echo "<a href=\"{$row['link']}\" class=\"button\">Website link</a>";
}

答案 1 :(得分:0)

听起来你需要的只是一个非常简单的条件。

您的表中有一列用于链接,因此无论它是否具有值,它都将在数组中。

添加if语句进行检查。

if ( $row['link'] ) {
    echo "<a href=\"{$row['link']}\" class=\"button\">Website link</a>";
}

答案 2 :(得分:0)

尝试使用mysqli_num_rows,如果结果返回= 0 {// } else显示带链接的按钮标记