Php 如何让某些内容在一段时间内只显示一次

Php 如何让某些内容在一段时间内只显示一次,php,mysql,Php,Mysql,我运行了一个mysql查询,它检查迭代器是否等于1,然后显示这个div标题 if($this->dliterator==1){echo“下载”“;} 问题是,dl迭代器不一定从1开始。(它与数据库中的下载ID直接相关) 如何通过循环only使其仅第一次显示 while ($row = mysql_fetch_assoc($result)) { if ($row['download'] != null){ if ($this->dliterator == 1) {echo

我运行了一个mysql查询,它检查迭代器是否等于1,然后显示这个div标题

if($this->dliterator==1){echo“下载”
“;}

问题是,dl迭代器不一定从1开始。(它与数据库中的下载ID直接相关)

如何通过循环only使其仅第一次显示

while ($row = mysql_fetch_assoc($result)) { 

   if ($row['download'] != null){
    if ($this->dliterator == 1) {echo "<div class='clientsection' id='downloads'>Downloads</div><br/>";};


    if ($editDownload == 1) {
     echo "<div class='clientlink' style='margin-top: 15px;'>";
     echo "<input name='downloads[$this->dliterator][name]' type='text' id='download$this->dliterator' value='" . $row['download'] . "'/>";
     echo "<input name='downloads[$this->dliterator][title]' type='text' id='downloadtitle$this->dliterator' value='" . $row['downloadtitle'] . "'/>";
     echo "<img class='removelink' src='/images/deletelink.png' width='15' />";
     echo "<input id='downloadid' name='downloads[$this->dliterator][id]' type='hidden' value='".$row['downloadid']."' style='display: none'/>";
     echo "<br/><img id='uploaddownload$uploaditerator' class='uploaddownload' src='../images/upload.png' width='80'/>"; 
     echo "</div>";


    };

   };

   $this->dliterator++;

   $uploaditerator++;
};
while($row=mysql\u fetch\u assoc($result)){
如果($row['download']!=null){
如果($this->dliterator==1){echo“下载
“;}; 如果($editDownload==1){ 回声“; 回声“; 回声“; 回声“; 回声“; 回声“
”; 回声“; }; }; $this->dliterator++; $uploaditerator++; };
谢谢你的回答!这是我的工作解决方案,感谢Zuul:

if ($row['download'] != null){
if (($this->dliterator != null ) && ($check ==0)) {echo "<div class='clientsection' id='downloads'>Downloads</div><br/>";
$check++;};
if($row['download']!=null){
如果($this->dliterator!=null)&($check==0)){echo“下载
”; $check++;};
$row=mysql\u fetch\u assoc($result);
如果($row&&$row['download']!=null){
echo“下载
”; } while($row){ // ... $row=mysql\u fetch\u assoc($result); }
将一个标志放在false处的循环外
$firstLineFetched=false;
,如果它为false,则将其设置为true并执行第一行处理

尝试以下操作:

$check=0;

if (($this->dliterator == 1) && ($check==0)) {
  echo "<div class='clientsection' id='downloads'>Downloads</div><br/>";
  $check++;
};
$check=0;
如果($this->dliterator==1)和($check==0)){
echo“下载
”; $check++; };
如果
dliterator==1
并且
$check
没有更改,它将输入
if
语句。。。 进入内部后,它将更改
$check
,从而防止
if
语句再次运行


希望有帮助!

您可以将循环外的计数器设置为0,然后执行以下操作:

if($i == 0)
  printf("<div class=........>\n");
if($i==0)
printf(“\n”);

然后确保在while()末尾增加$i($i++),下次通过循环时,它将直接通过printf()语句。

我认为将
$check
设置为布尔值将使示例更具可读性,但除此之外+1。这看起来很奇怪-首先,$row也应该在检查之前进行检查,其次,您将跳过在$row中显示上一次获取的数据。这个问题缺乏明确性。我的理解很简单“仅在第一次迭代时在循环开始时多做一步”。这可以通过像我所做的那样展开循环来实现。如果这不是目标,我不理解这个问题。
if($i == 0)
  printf("<div class=........>\n");