我希望从一个表中获取信息并在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>
}
答案 0 :(得分:3)
如果我理解你的问题,我认为你有正确的想法。我猜你想在第一次迭代时打印一些额外的东西(比如使用数组键的列标题)?
$cnt= 0;
while($row = mysql_fetch_assoc($res)) {
if(0 == $cnt++) {
// first iteration only
}
// all iterations
}
或者,如果我完全没有更好地描述你想要做的事情,现实世界的情况会有所帮助。
答案 1 :(得分:1)
你有没有想过......一会儿?它具有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 ) );
答案 2 :(得分:1)
$rs = mysql_query("SELECT * FROM tbl");
$row = mysql_fetch_array($rs);
do {
echo $row['column_name'];
} while($row = mysql_fetch_array($rs));
我不知道这是否是你需要的。希望这个有所帮助。 =]