我的记录集是:
mysqli_select_db($KCC, $database_KCC);
$query_rsOtherServices = "SELECT pagecontent.mainMenuID, mainmenu.mainMenuLabel, pagecontent.subMenuID, submenu.subMenuLabel, pagecontent.contentID, pagecontent.contentTitle FROM submenu RIGHT JOIN (mainmenu RIGHT JOIN pagecontent ON mainmenu.mainMenuID = pagecontent.mainMenuID) ON submenu.subMenuID = pagecontent.subMenuID WHERE pagecontent.mainMenuID = 1 AND pagecontent.subMenuID IS NULL";
$rsOtherServices = mysqli_query($KCC, $query_rsOtherServices) or die(mysqli_error());
$row_rsOtherServices = mysqli_fetch_assoc($rsOtherServices);
$totalRows_rsOtherServices = mysqli_num_rows($rsOtherServices);
我用来显示记录的代码是:
<?php do { ?>
<li><a href="familyservices.php?idVal=<?php echo $row_rsOtherServices['contentID']; ?>"><h4><?php echo $row_rsOtherServices['contentTitle']; ?></h4></a></li>
<?php } while ($row_rsOtherServices = mysqli_fetch_assoc($rsOtherServices)); ?>
如果记录存在但是如果没有记录,那么这一切都可以正常工作,那就是一个&#39;链接&#39;可以点击,即使它不可见。
我尝试了<?php if ($totalRows_rsOtherServices['subMenuID'] === Null) { ?>
,<?php if ($totalRows_rsOtherServices['subMenuID'] > 0) { ?>
,<?php if ($totalRows_rsOtherServices['subMenuID'] == true) { ?>
,<?php if ($totalRows_rsOtherServices['subMenuID'] == false) { ?>
,但无济于事。
我对编程一无所知,更不了解PHP,所以我甚至不确定我是否朝着正确的方向前进。
我需要摆脱“隐形链接”。
答案 0 :(得分:2)
由于您使用的是do ... while
,因此请仅使用while
。
尝试
<?php while (($row = mysqli_fetch_assoc($rsOtherServices))) { ?>
<li>
<a href="familyservices.php?idVal=<?php echo $row['contentID']; ?>">
<h4><?php echo $row['contentTitle']; ?></h4>
</a>
</li>
<? } ?>
答案 1 :(得分:0)
好的,我已经弄清楚了。
我没有使用$((totalRows_rsOtherServices['subMenuID']) > 0)
,而是将其更改为(($row_rsOtherServices) > 0)
。这就行了。
但是,如果我按照建议使用while (($row = mysqli_fetch_assoc($rsOtherServices)))...
,即使有记录,也不会显示。
在这个时刻,我不会为此担心太多,但将来会对此进行调查。