【问题标题】:If a value is stored in database I can echo it, but if no value is stored how can I omit the entire tag?如果一个值存储在数据库中,我可以回显它,但如果没有存储值,我怎么能省略整个标签?
【发布时间】:2026-01-27 12:35:01
【问题描述】:
echo "<a href=\"{$row['link']}\" class=\"button\">Website link</a>";

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

我试过这样做:

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

而在数据库中,“链接”值将是:

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

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

【问题讨论】:

  • 带有条件语句的方法太多了。您还需要发布您的数据库架构。
  • 这个问题既宽泛又不清楚。我要求您为此发布数据库架构。要么你不知道怎么做,要么已经离开了这个问题。无论如何,你已经得到了答案,看看你什么时候回来。投票结束。
  • 我不知道该如何道歉。但是@NathanDawson 发布的内容解决了我的问题。

标签: php mysql database phpmyadmin


【解决方案1】:

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

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

添加一个 if 语句来检查它。

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

【讨论】:

    【解决方案2】:

    尝试使用mysqli_num_rows, if result return = 0{ // } else 显示带有链接的按钮标签

    【讨论】:

      【解决方案3】:

      您只需要使用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>";
      }
      

      【讨论】:

      • isset() 即使在 db 中的 NULL 值上也会失败。
      • 数组是数据库查询的结果。该字段仍将构成数组的一部分,因此您无法使用isset() 对其进行检查。永远都是真的。
      • 使用 !EMPTY() 来测试 null 和 empty。 ISSET() 在空变量上返回 true
      最近更新 更多