if 语句取决于数组中数据的存在,但是如何在检查时不丢失数组中的第一项?

if statement depends on existence of data in array, but how to not lose first item in array upon checking it?

这让我想起了那个猫是否存在的问题,只有打开盒子它才会存在。但是我跑题了。

我正在检查 mysql 查询的结果,以确定列中是否有数据,如果有,我将在标题下列出数据。检查它的行为似乎是 "using up" 数组中三个结果中的第一个,否则我会想要显示它。这就是我的意思:

在这种情况下,我的查询结果是三个 children 的名字:Billy Timmy 和 Sally。我希望他们的名字出现在标题下,"CHILDREN." 但有时没有 children 所以在这些情况下我不想要标题。

这是一个代码示例,缺少很多其他内容,但我认为这是相关的。

<?php
$query2 = SELECT name AS ChildName
          FROM family
          WHERE TIMESTAMPDIFF(YEAR, bday, CURDATE()) < 24
          AND familyid = ".$_GET['id']."";
$result2 = mysql_query($query2);

   <?php $row2 = mysql_fetch_array($result2) ?>
   <?php IF(!empty($row2['ChildName'])) { ?>
   <strong>CHILDREN</strong>
   <?php } ?>

   <?php while ($row2 = mysql_fetch_array($result2)) { ?>
   <ul> <?php echo '<li> ' . $row2['ChildName'] . '</li>';?> </ul>
   <?php } ?>

我在这种情况下的结果是:

CHILDREN

提米

莎莉

但是如果我去掉标题检查,我会在(永久)标题下得到所有三个名字。

我在这里错过了什么?

您可以先使用 mysql_num_rows($result) 方法检查是否返回任何行,然后执行 while 循环获取并显示所有行。现在你没有得到第一行,因为你正在获取它以检查它是否存在。