[英]Easy method to print something, only once inside while loop?
我想从一个表中获取信息,并在while循环的帮助下循环进行直到完成。 虽然,我希望在循环内只打印一次一列。
我想出了两种解决方案...
<?php
$i = 0;
// while loop start
if($i == 0){
// stuff to print
$i++;
}
// while loop end
?>
当然,我可以在while循环之前进行另一个查询。
但是这些方法确实效率不高。 有没有那么麻烦的方式来做到这一点?
实际上,我可以在while循环之前运行另一个查询,如果它不会变得那么凌乱,或者如果我可以重用该循环的查询(我从表中获取所有内容)的话,我会没事的。 我尝试使用mysql_fetch_field进行实验,但不确定是否可以使用它,或者这是否有助于*尴尬*
当前,代码如下所示:
$fetch = mysql_query("SELECT *
FROM `pms`
JOIN `pm_conversations` ON pms.ConvID = pm_conversations.ID
WHERE `ConvID`='".$_GET['id']."'");
$i = 0;
while($print = mysql_fetch_array($fetch)){
if($i == 0){
echo $print['Subject'];
$i++;
}
<table>
<th><?=$print['From']?>, <?=$print['DateSent']?></th>
<tr><td><?=$print['Message']?></td></tr>
</table>
}
如果我正确理解了您的问题,我认为您有正确的主意。 我猜您想在第一次迭代中额外打印一些内容(例如使用数组键的列标题)?
$cnt= 0;
while($row = mysql_fetch_assoc($res)) {
if(0 == $cnt++) {
// first iteration only
}
// all iterations
}
或者,如果我完全不了解您要做什么,那么实际情况会有所帮助。
您是否考虑过……而? 它具有while的所有优点,并且它允许代码在第一次迭代之前有条件地发生。
$res = mysql_fetch_array( $resource );
// run the magical run once query/functionality/bunnies/whatever
// Hey, I'm tired. Let there be bunnies.
do
{
// put the regular while loop constructs in here;
}
while( $res = mysql_fetch_array( $resource ) );
$rs = mysql_query("SELECT * FROM tbl");
$row = mysql_fetch_array($rs);
do {
echo $row['column_name'];
} while($row = mysql_fetch_array($rs));
我不知道这是否是您所需要的。 希望这对您有所帮助。 =]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.