我在两个页面上使用相同的 while 循环,唯一的区别是每个页面上的 SQL 调用不同。第一个可以正常工作,从查询中获取内容并将其显示在图像滑块中:
<?php
$qry = mysql_query(sprintf("SELECT * FROM manageme WHERE element IN ('%s')", $element));
$i = 0;
while (($t = mysql_fetch_array($qry)) != null && $i < 52) { $i++;?>
<li>
<a href="">
<img src="<?php print $t['fileLocation']; ?>";
title="<?php print $t['element_name']; ?>";
name="<?php print $t['clickLocation']; ?>";
alt="wat"
class="btnshow" />
</a>
</li>
<?php } ?>
只要返回的条目少于 52 个,它就应该逐步遍历循环并从查询中获取内容,并在每条记录显示一次时结束。
在使用不同的 SQL 调用实现相同的 while 循环时,就会出现问题。
<?php
$qry = mysql_query(sprintf("SELECT u.username, us.user_id, us.service_id,
s.imageID, s.title, s.clickLocation, s.fileLocation, s.element_name
FROM user u, user_service us, manageme s
WHERE us.user_id = %s
AND s.imageID = us.service_id", $_COOKIE['user_id']));
$i = 0;
while (($t = mysql_fetch_array($qry)) != null && $i < 52) { $i++;?>
<li>
<a href="">
<img src="<?php print $t['fileLocation']; ?>";
title="<?php print $t['element_name']; ?>";
name="<?php print $t['clickLocation']; ?>";
alt="wat"
class="btnshow" />
</a>
</li>
<?php } ?>
当内容显示一次时,它不会从数组中抓取并结束 while 循环,而是继续循环图像滑块中的内容,直到显示 52 个条目。因此,例如,如果 SQL 调用仅找到要在图像滑块中显示的 4 条记录,则在结束循环之前,这 4 条记录会显示 13 次 (52/4)。
任何人都可以帮助我弄清楚如何在它显示我的数据库中的每条记录一次且仅一次之后结束这个循环吗?提前致谢!