Php 如何让某些内容在一段时间内只显示一次
我运行了一个mysql查询,它检查迭代器是否等于1,然后显示这个div标题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
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");