【问题标题】:PHP MYSQL while loop with if statement echoing in wrong orderPHP MYSQL while循环,if语句以错误的顺序回显
【发布时间】:2011-09-11 18:23:45
【问题描述】:

好的,现在我尝试使用 while 循环从 mysql 中回显一个列表,但正如您在此处看到的 http://institute4se.com/plan/ 它以错误的顺序回显。为什么?

if 语句的原因是只有在循环到达新小节的开头时才使 div 的顶部和底部部分回显。

如果我删除 if 语句,列表会按顺序回显,但 div 的开头和结尾会回显每个循环。

你可以在这里看到我的数据库又名 $info:http://i.stack.imgur.com/QMO2X.png http://i.stack.imgur.com/RsHdb.png

关于如何解决它的任何想法?

 while($info = mysql_fetch_array( $data )) 
 {

if($info['subsection']=='0'){
echo "
<div class='menuSection'>
<div class='sectionHeader' id='header".$info['section']."'><img src='images/status_circ_empty.gif' alt='Section Empty' /><a href='index.php?s=".$info['section']."&ss=".$info['subsection']."'>".$titleArr[$info['section']]."</a><img src='images/arrow_".$currentArrow.".gif' alt='Arrow' class='arrow' /></div>
    <ul class='sectionSubmenu' id='section".$info['section']."' style='display:".$currentSection."'>
"; 
}
else{
echo "<li><img src='images/status_circ_empty.gif' alt='Section Empty' /><a href='index.php?s=".$info['section']."&ss=".$info['subsection']."'>".$info['title']."</a></li>"; 
}
if($info['subsection']=='0'){
echo"
    </ul>
</div>
";
}
}

【问题讨论】:

  • 不就是你在 if 的主要位中复制了 else 中的那行吗?编辑:看起来你已经从你的问题中删除了那段代码,所以我猜不是这样!
  • 我不知道你在问什么。
  • 您正在运行的基础查询是什么? PHP 中的任何内容都不会对结果进行重新排序,除非您对代码进行结构化以使其变得不稳定。所以...可能您的查询排序错误。如果您按部分 ID 编号而不是部分名称进行排序,那么您无疑会得到“错误”的排序。
  • 我没有重新排序任何东西,我只是想在 mysql 数据库中的子部分为 0 时回显 div 代码,这意味着它已经到达一个新的子菜单列表。我所指的顺序是它与 if 和 else 语句相呼应的顺序。
  • @Dave K:我们既不知道表的结构/索引,也不知道您使用的查询语句。如果您至少要显示 $info 包含的内容,那会有所帮助。否则我们只能猜测或使用水晶球^^

标签: php mysql loops if-statement while-loop


【解决方案1】:

您需要订购记录,在查询中添加ORDER BY subsection ASC

【讨论】:

    【解决方案2】:

    下面是固定代码,感兴趣的朋友可以参考一下:

    while($info = mysql_fetch_array( $data )) 
    { 
    
        // if the current subsection is a new section
        if($info['subsection']==0){
        // if the current section is NOT the first section
        if($info['section']!=0){
        // end the section div
        echo "
                </ul>
        </div>
        ";
        }
    
        // start the section div and add the section header
        echo "
        <div class='menuSection'>
        <div class='sectionHeader' id='header".$info['section']."'><img src='images/status_circ_empty.gif' alt='Section Empty' /><a href='index.php?s=".$info['section']."&ss=".$info['subsection']."'>".$titleArr[$info['section']]."</a><img src='images/arrow_".$currentArrow.".gif' alt='Arrow' class='arrow' /></div>
            <ul class='sectionSubmenu' id='section".$info['section']."' style='display:".$currentSection."'>
            <li><img src='images/status_circ_empty.gif' alt='Section Empty' /><a href='index.php?s=".$info['section']."&ss=".$info['subsection']."'>".$info['title']."</a></li>
    
        ";
    
        }
        // if the current section is not a new section
        else{
            // add the next submenu item
            echo "<li><img src='images/status_circ_empty.gif' alt='Section Empty' /><a href='index.php?s=".$info['section']."&ss=".$info['subsection']."'>".$info['title']."</a></li>"; 
        }
    } 
    echo"
        </ul>
    </div>
    ";
    

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 2015-05-19
      • 1970-01-01
      • 2013-06-09
      • 2014-01-21
      • 2015-11-08
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多