簡體   English   中英

一種簡單的方法來打印內容,僅在while循環內一次?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM