代码之家  ›  专栏  ›  技术社区  ›  seizethecarp

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

  •  0
  • seizethecarp  · 技术社区  · 8 年前

    这让我想起了一个问题,那就是猫是否存在,只有当你打开盒子时它才存在。但我离题了。

    我在本例中的查询结果是三个孩子的名字:比利·蒂米和萨利。我希望他们的名字出现在“孩子们”的标题下但有时没有孩子,所以在这种情况下我不想要标题。

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

    <?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 } ?>
    

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

    蒂米

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

    我错过了什么?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Saad    8 年前

    您可以首先使用以下命令检查是否返回了任何行: mysql_num_rows($result) 方法,然后执行while循环获取并显示所有行。现在您无法获取第一行,因为您获取它是为了检查它是否存在。