【发布时间】: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