如何通过1个php/mysql结果多次循环

如何通过1个php/mysql结果多次循环,php,mysql,Php,Mysql,想知道是否有更简单的方法来做到这一点 我有一个包含大量行的表,需要根据名为“page_group”的一列上的特定值分别显示它们。现在,当我将结果指针重置回零时,它确实起作用了,但我想知道是否有一种更简单的编码方法,因为至少有15个不同的部分用于对结果进行分组 //this is the query $q_home = mysql_query("SELECT * FROM pages WHERE page_nav = 'No' ORDER BY page_group ASC"); //this

想知道是否有更简单的方法来做到这一点

我有一个包含大量行的表,需要根据名为“page_group”的一列上的特定值分别显示它们。现在,当我将结果指针重置回零时,它确实起作用了,但我想知道是否有一种更简单的编码方法,因为至少有15个不同的部分用于对结果进行分组

//this is the query
$q_home = mysql_query("SELECT * FROM pages WHERE page_nav = 'No' ORDER BY page_group ASC");

//this would show results 1, showing all rows that have the value "sample1"
<h3>Result 1</h3>
<ul>
<? 
    while($r_nav = mysql_fetch_assoc($q_home)){
      $group_folder = $r_nav['page_group'];
      if ($r_access["$group_folder"] == "Yes" && $group_folder == 'sample1') { 
            $access = 'block;'; 
        } else { 
            $access = 'none;'; 
        } {;
            echo '<li style="display:'.$access.'"><a href="'.$group_folder.'/'.$r_nav['page_url'].'.php">'.$r_nav['page_name'].'</a></li>';
      }
    }
?>
</ul>   

//this would be result 2 showing all rows that have value "sample2"
<h3>Result 2</h3>
<ul>
<? 
    mysql_data_seek($q_home, 0);
   while($r_nav2 = mysql_fetch_assoc($q_home)){
      $group_folder = $r_nav2['page_group'];
      if ($r_access["$group_folder"] == "Yes" && $group_folder == 'sample2') { 
            $access = 'block;'; 
        } else { 
            $access = 'none;'; 
        } {;
            echo '<li style="display:'.$access.'"><a href="'.$group_folder.'/'.$r_nav2['page_url'].'.php">'.$r_nav2['page_name'].'</a></li>';
      }
    }
?>
</ul>
//这是查询
$q_home=mysql_查询(“从页面中选择*,页面导航='No'按页面组ASC排序”);
//这将显示结果1,显示值为“sample1”的所有行
结果1
//这将是结果2,显示所有具有值“sample2”的行 结果2

您将mysql_获取放在一个循环中,因此不要停止特定
$group_文件夹上的循环(删除if子句的该部分):


类似这样的循环将是更好的解决方案:

$q_home = mysql_query("SELECT * FROM pages WHERE page_nav = 'No' ORDER BY page_group ASC");
$x = 1;
<? while( $r_nav = mysql_fetch_assoc($q_home) ) { ?>
<h3>Result <?= $x; ?></h3>
<ul>
<?php
  $group_folder = $r_nav['page_group'];
  if( $r_access["$group_folder"] == "Yes" && $group_folder == 'sample1') {
    $access = 'block;';
  }
  else { 
    $access = 'none;';
  }
  echo '<li style="display:'.$access.'"><a href="'.$group_folder.'/'.$r_nav['page_url'].'.php">'.$r_nav['page_name'].'</a></li>';
  }
  $x++;
?>
</ul>
<?php } ?>
$q_home=mysql_query(“从页面中选择*,页面导航='No'按页面组ASC排序”);
$x=1;
结果

将SQL与业务逻辑和HTML生成代码放在一起并不好。你需要为每一项责任上课。它回答了您向存储后端提出的问题,从而运行SQL。从某个哑数据结构生成视图(即HTML)的一种。如此愚蠢的数据结构。以及一个用例类,它使用您的store类来运行查询,然后根据结果构造一个数据对象,并将其提供给视图以使其可视化。至少有4种不同的职责。你的代码应该有语法错误。
$q_home = mysql_query("SELECT * FROM pages WHERE page_nav = 'No' ORDER BY page_group ASC");
$x = 1;
<? while( $r_nav = mysql_fetch_assoc($q_home) ) { ?>
<h3>Result <?= $x; ?></h3>
<ul>
<?php
  $group_folder = $r_nav['page_group'];
  if( $r_access["$group_folder"] == "Yes" && $group_folder == 'sample1') {
    $access = 'block;';
  }
  else { 
    $access = 'none;';
  }
  echo '<li style="display:'.$access.'"><a href="'.$group_folder.'/'.$r_nav['page_url'].'.php">'.$r_nav['page_name'].'</a></li>';
  }
  $x++;
?>
</ul>
<?php } ?>