打印东西的简单方法,只在环内进行一次打印?

时间:2011-06-24 03:25:20

标签: php mysql

我希望从一个表中获取信息并在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>
}

3 个答案:

答案 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));

我不知道这是否是你需要的。希望这个有所帮助。 =]