0

我有一个while循环。它应该遍历数据库表并输出找到的结果,这很好。但是,它也会在 while 循环中复制 HTML(输出两次,一次反向输出??)。

看:

1) Jazzminder Soundscape 2) 3) 1) 2) Jazzminder 蒲公英 3)

应该读:

1) Jazzminder Soundscape 2) Jazzminder 蒲公英 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)两次。我尝试使用数据库以使条目彼此完全不同,但可以通过一个查询来提取所有内容。...如果这是有道理的。

4

2 回答 2

1

我将对此进行尝试,但如果没有完整的代码,我可能会出错。我的猜测是问题出在你的 MySQL 上。根据您要输出的内容。一个记录看起来像这样

艺术家姓名1 | 艺术家姓名2 | 艺术家姓名3 | track_title1 | 曲目标题2 | track_title3

但根据您所说的是您的输出显示方式,您的表格很可能看起来像这个艺术家名 | track_title

你能告诉我你的桌子长什么样吗?

仅供参考,它没有反向显示事物,它显示了所有 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 }

} ?>

于 2013-05-11T01:16:24.267 回答
0
 <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);

$s=1;

  while($row2 = mysql_fetch_assoc($result2))
  {
      echo $s.') <font color="orange"><strong>'.$row2['artist_name1'].$row2['track_title1'] .'</strong></font>';
      $s++;
  }
?>

我认为你的数据库结构搞砸了。每当您进行插入时,请发布您的表结构以及您正在输入的列中的数据。

于 2013-05-11T01:27:35.960 回答