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