【问题标题】:PHP Recordset and EOFPHP 记录集和 EOF
【发布时间】:2013-09-10 06:17:13
【问题描述】:

我觉得我知道这一点,但我很沮丧,因为我不记得到底该怎么做。

在 PHP 中,我需要在无序列表中重复记录集的项目。我可以很好地重复项目,但如果记录集为空,我不希望显示任何内容。现在,如果没有记录,代码仍然显示一个空白列表项,而我只想什么都不出现。

我试过这个:

<?php do { ?>
    <li><a href="#">Content Goes Here</a></li>
<?php } while (!feof($recordsetName) && $row_recordsetName = mysql_fetch_assoc($recordsetName)); ?>

我已经尝试过这样做,将重复元素与 if/else 语句放在一起,如下所示:

<?php if (!feof($recordsetName)) {
    echo ""; }
else do { ?>
    <li><a href="#">Content Goes Here</a></li>
<?php } while ($row_recordsetName = mysql_fetch_assoc($recordsetName));
; } ?>

但这也不起作用。任何信息都会有所帮助

【问题讨论】:

  • 我认为有一种更简单的方法可以实现这一点。你能展示一下你的数据库结构/查询是什么样的,以及你希望你的最终结果是什么样的吗?

标签: php eof recordset


【解决方案1】:
while($row = mysql_fetch_assoc($recordsetName)) {
    if($row['fieldname'] != '') {
        echo '<li><a href="#">Content Goes Here</a></li>';
    }
}

或者你可以检查查询是否成功...

$result = mysql_query($sql);
if($result) {
    echo '<li><a href="#">Content Goes Here</a></li>';
}

或者如果它返回任何结果...

$results = mysql_fetch_assoc($recordsetName);
if(mysql_num_rows($results) > 0) {
    while($row = mysql_fetch_assoc($results)) {
       echo '<li><a href="#">Content Goes Here</a></li>';
    }
}

另外,你真的应该使用mysqliPDO,因为mysql 已被贬值。

编辑:在示例 3 中添加了循环。

【讨论】:

  • 那行不通。也许我可以试着澄清一下。如果记录集为空,则不应该发生任何事情,否则,如果记录集中返回了项目,则它应该循环遍历每个记录集并在列表项中显示记录集中的每个项目。也许这将有助于澄清。
  • 如果该字段为空,示例 1 将不会显示任何内容。如果查询失败,示例 2 将不会显示任何内容。如果记录集为空,示例 3 将不会显示任何内容 - 这正是您想要的。
  • 感谢蒂姆的反馈。在我看到你的答案之前,我实际上能够弄清楚那部分,但看到你的答案再次证实了我的想法,我能够让它发挥作用。再次感谢!
  • 太棒了!很高兴听到它正在工作。请接受我的回答,这样其他人以后就不会尝试回答,也不会出现在未回答的类别中。 :)
  • 谢谢 - 第一次使用这个网站,所以希望我迟早会掌握它。
猜你喜欢
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 2017-07-22
相关资源
最近更新 更多