php - 虽然循环 : Works, 但也循环 HTML 并输出两次(一次反向?)

标签 php html mysql loops while-loop

我有一个 while 循环。它应该循环遍历数据库表并输出找到的结果,它做得很好。然而,它还在 while 循环中复制了 HTML(输出两次,一次反向输出??)。

参见:

1) Jazzminder Soundscape 2) 3) 1) 2) Jazzminder Dandelion 3)

应该阅读:

1) Jazzminder Soundscape 2) Jazzminder Dandelion 3)

我尝试过调整和重写代码,但无法隔离问题。我以前没有遇到过这个问题。

这是代码块:

 <p> <a href="promote_next_step.php?promote=<?php echo $_GET['promote']?>">
<strong>        [More To Next Step]</strong></a></p>
<strong><font color="gray">Included so far:</font></strong><br/>

<?php 
  $sql2="SELECT * FROM `promote_track_lists` WHERE `promo_title`='".     $_GET['promote1']."'";
  $result2=mysql_query($sql2);
  while($row2 = mysql_fetch_assoc($result2)){
?>
  1) <font color="orange"><strong><?php echo $row2['artist_name1'] ?> <?php echo     $row2['track_title1'] ?></strong></font>
  2) <font color="orange"><strong><?php echo $row2['artist_name2'] ?> <?php echo     $row2['track_title2'] ?></strong></font>
  3) <font color="orange"><strong><?php echo $row2['artist_name3'] ?> <?php echo     $row2['track_title3'] ?></strong></font>

<?php 
  }
?>

谢谢各位的回复!!问题是,我有另一个页面可以很好地从数据库中提取信息:

  if (isset ($_GET['promote1']) === true) {
  $sql3="SELECT * FROM `promote_track_lists` where `promo_title`    ='".$_GET['promote1']."' "; 
  $result3= mysql_query ($sql3);
 while ($row3 = mysql_fetch_assoc ($result3)) {   
 ?>
              <div id="promotion_files">
              <!------- track1 ------->
               <?php  if ($row3['iframe1']) {?>
                <div class="promotion_track_name"><strong><?php echo     $row3['artist_name1'] ?>-<?php echo $row3['track_title1'] ?></strong></div>
                <?php echo $row3['iframe1']?>
                <?php
                if (isset ($_POST['submit'])===true && empty     ($_POST['feedback']) === false) {
                ?>
                <a href="mp3_download.php?promote1=<?php echo     $row['title'] ?>"><img src='images/design images/iPodDownload.png' /></a>
                <?php
                }
                }
            ?>
                           <!------- track2 -------> 

它执行了 20 次没有问题,但由于某种原因,在另一个页面上它循环遍历 HTML 并输出(仅 html)两次。我尝试对数据库进行操作,使条目彼此完全唯一,但可以通过一个查询提取所有内容。 ……如果这是有道理的话。

最佳答案

我打算尝试一下,但如果没有完整的代码,我可能会错。我猜问题出在你的 MySQL 上。根据您想要输出的内容。一条记录看起来像这样

艺术家姓名1 |艺术家姓名2 |艺术家姓名3 |轨道标题1 |轨道标题2 |轨道标题3

但是根据您所说的输出显示方式,您的表格很可能如下所示 艺术家姓名 |轨道标题

你能告诉我你的 table 是什么样子吗?

仅供引用,它并没有反向显示内容,它显示所有 3 行 3 次,但每次您只能看到一组值。所以你看到 1 -data- 2 3 然后 1 2 -data- 3 然后 1 2 3 -data- 我希望这是有道理的

因此,查看您的图像和您发布的附加代码,我注意到第二个代码块上存在这种情况,但它不在您的第一个代码块中。

            <?php  if ($row3['iframe1']) {?>

所以我要问你的问题是这样的。如果 iframe2 为空,则在您的数据库中。艺术家2 是空白的吗?如果是这种情况,并且根据您在原始电子邮件中的描述,看起来artist1 title1和iframe1都包含值,但该行的其余值是空白的,并且在表中的下一条记录中artist2 title2和iframe2被填充其余字段为空,第三个字段也是如此...如果是这种情况,那么您需要对 while 循环执行以下操作...

while($row2 = mysql_fetch_assoc($result2)){
     if ($row2['iframe1']) {?>
  1) <font color="orange"><strong><?php echo $row2['artist_name1'] ?> <?php echo     $row2['track_title1'] ?></strong></font>
  <?php  else if ($row2['iframe2']) {?>
  2) <font color="orange"><strong><?php echo $row2['artist_name2'] ?> <?php echo     $row2['track_title2'] ?></strong></font>
  <?php else if ($row2['iframe3']) {?>

  3) <font color="orange"><strong><?php echo $row2['artist_name3'] ?> <?php echo     $row2['track_title3'] ?></strong></font>
  <?php }

} ?>

关于php - 虽然循环 : Works, 但也循环 HTML 并输出两次(一次反向?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16492702/

相关文章:

PHP使用单选按钮的值

php - 生成一个 5 个字符长的字符串 0-9 a-z

php - 由于数组索引不匹配,通过网络爬虫提取站点数据会输出错误

javascript - 如何复制另一个元素的onclick函数

html - 横幅被忽略

mysql - 错误代码 : 1264. 第 1 行 'XXX' 列的值超出范围

php - 将总行数除以所有行的总和 - Laravel

mysql - 在 order 子句中使用 +0

php - PDO 准备语句参数中的单引号转义

javascript - 为动态 url 设置 noopener