PHP MYSQL while循环,if语句以错误顺序回音
好的,现在我正在尝试使用while循环从mysql获取一个列表,但是正如您在这里看到的,它以错误的顺序进行响应。为什么? if语句的原因是使div的顶部和底部仅在循环到达新小节的开头时进行回音 如果我删除If语句,列表会按顺序回显,但是div的开始和结束会回显每个循环 您可以在此处查看我的数据库aka$info:http://i.stack.imgur.com/RsHdb.png 有没有关于如何修复它的想法PHP MYSQL while循环,if语句以错误顺序回音,php,mysql,loops,if-statement,while-loop,Php,Mysql,Loops,If Statement,While Loop,好的,现在我正在尝试使用while循环从mysql获取一个列表,但是正如您在这里看到的,它以错误的顺序进行响应。为什么? if语句的原因是使div的顶部和底部仅在循环到达新小节的开头时进行回音 如果我删除If语句,列表会按顺序回显,但是div的开始和结束会回显每个循环 您可以在此处查看我的数据库aka$info:http://i.stack.imgur.com/RsHdb.png 有没有关于如何修复它的想法 while($info = mysql_fetch_array( $data ))
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>
";
}
}
while($info=mysql\u fetch\u数组($data))
{
如果($info['subsection']='0'){
回声“
";
}
}
您需要订购记录,请在查询中添加按ASC小节订购。以下是感兴趣的任何人的固定代码:
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>
";
while($info=mysql\u fetch\u数组($data))
{
//如果当前小节是新的小节
如果($info['subsection']==0){
//如果当前节不是第一节
如果($info['section']!=0){
//结束部分div
回声“
";
}
//启动节div并添加节标题
回声“
";
if的主位中复制了来自else的行,这不是很简单吗?编辑:看起来你已经从你的问题中删除了一些代码,所以我想那不是问题所在!我不知道你在问什么。你运行的基本查询是什么?PHP中的任何内容都不会对结果进行重新排序,除非您对代码进行结构化,使其变得不可靠。所以可能您的查询排序错误。如果您是按节ID编号而不是节名称排序,那么毫无疑问,您会得到“坏”排序。我没有重新排序任何内容,我只是想让div代码在mysql数据库中的每一个子节为0时都回显,这意味着它已到达一个新的子菜单列表。我指的顺序是它响应if和else语句的顺序。@Dave K:我们既不知道表的结构/索引,也不知道您使用的查询语句。如果您至少能展示一下$info
包含的内容,这会有点帮助。否则我们只能猜测或使用水晶球^^