【问题标题】:Determine if returning nothing.. PHP MySQL确定是否不返回任何内容.. PHP MySQL
【发布时间】:2010-10-31 01:03:12
【问题描述】:

我有以下代码:

<table>
<thead>
  <tr>
    <th>Service</th>
    <th>Status</th>
  </tr>
</thead>
<?php $result = mysql_query("SELECT Service, Status FROM services WHERE Company='Company 1'");
  while ($row = mysql_fetch_array($result)) {
          //  ^ must be a single '=' !!!!
      echo '<tr><td>' . $row["Service"] . '</td>';
      echo '<td>' . $row["Status"] . '</td></tr>';
  } ?>
</table>

在 HTML 表中显示 MySQL 数据库中的多行。我的问题是.. 我如何确定是否没有符合我的条件的行,并显示一条消息表明它是空的?

【问题讨论】:

    标签: php html mysql html-table


    【解决方案1】:

    在我看来,最好的方法是 if 语句 + do/while 循环:

    $result = mysql_query("your query");
    
    if ($row = mysql_fetch_array($result)) {
        do {
            // your loop stuff
        } while ($row = mysql_fetch_array($result));
    } else {
        echo "No result";
    }
    

    您也可以使用 mysql_num_rows 函数,但请记住,PDO API 没有这样的函数,do/while 解决方案适用于任何 API。

    附:如果您只使用数组的关联部分,请使用 mysql_fetch_assoc 而不是 mysql_fetch_array。

    【讨论】:

    • omg,我一直使用 mysql_num_rows 但这段代码更简洁! +1
    • 我真的很想知道为什么我的帖子被否决了,这始终是我与 PDO 一起使用的解决方案,如果有人知道得更好,我也想知道!
    【解决方案2】:

    您可以使用mysql_num_rows() 函数:

    $result = mysql_query("SELECT Service ... ");
    
    if (mysql_num_rows($result) > 0) {
       // Display Results
    }
    else {
       // No Results
    }
    

    【讨论】:

    • 甚至if (mysql_num_rows($result))(失败时也会返回FALSE
    猜你喜欢
    • 2013-04-08
    • 2011-05-25
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多