Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MYSQL while循环,if语句以错误顺序回音_Php_Mysql_Loops_If Statement_While Loop - Fatal编程技术网

PHP MYSQL while循环,if语句以错误顺序回音

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循环从mysql获取一个列表,但是正如您在这里看到的,它以错误的顺序进行响应。为什么?

if语句的原因是使div的顶部和底部仅在循环到达新小节的开头时进行回音

如果我删除If语句,列表会按顺序回显,但是div的开始和结束会回显每个循环

您可以在此处查看我的数据库aka$info: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>
";
}
}
while($info=mysql\u fetch\u数组($data))
{
如果($info['subsection']='0'){
回声“
    "; } 否则{ 回声“
  • ”; } 如果($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
包含的内容,这会有点帮助。否则我们只能猜测或使用水晶球^^