php - 在 php/mysql 中对数据进行排序

标签 php mysql

所以我有一个关于 mysql/php 中过滤数据的问题。

所以我有 table 可以说

ID | fk1   |  fk2   
 1    1        1      
 2    1        2      
 3    1        3
 4    2        1
 5    2        2
 6    3        3

基本上,我在同一个表中出现了许多引用 fk2 的 fk1 ,当我在表中输出时,我得到的结果当然是

1 1
1 2
1 3
2 1

等等。这是正常的。我想做的基本上是输出一次 FK2 值(比如说 1),以及低于它的所有相应 FK1 值。有点像分组依据,但对于 FK2 的每次出现,我需要所有在其行中具有该 FK2 的 FK1。

我设法让它以某种方式工作,以便所有 FK1 打印出来并对应 FK2,但其他方式将不起作用:S

$FK1 = '';
while($row = mysql_fetch_array($result_set)){

 if($FK1 != $row['fk1']){
  if($FK1 != ''){
   echo $printout;


  }
  $FK1 = $row['fk1'];


   $printout = "<tr class='success'><td>" . "<strong>" . $row['fk1']. "</td></tr>";
 }
 $printout  = $printout   .'<td  class="warning"> '.$row['fk2']. '</td></tr>';

}
 echo $printout ;

知道如何使用一些智能循环来做到这一点,而不是在基础上使用多个查询吗? 谢谢

最佳答案

对于打印查询的循环的每次迭代,您可以检查前一次迭代是否打印了相同的内容,并且(如果是)跳过打印或如果没有则打印当前的内容。

我希望我理解了这个问题并且我的答案足够清楚。

类似这样的事情:

$cFk1 = "";
foreach($query_result as $cVal){
   if($cVal != cFk1){
      print $cVal;
   }
   $cFk1 = $cVal;
}

关于php - 在 php/mysql 中对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370047/

相关文章:

mysql - 更改月份的sql查询

mysql - 嵌套集模型查询选择父节点内的节点

mysql - SQL 连接或相同的 id

mysql - 如何对mysql中引用表中的值应用AND运算符?

PHP Mysql - MySQL_Query 命令未运行

javascript - PHP fatal error : Allowed memory size of 134217728 bytes exhausted (tried to allocate 78 bytes)

php - cakephp属于自定义条件问题

php - Laravel Eloquent ORM - 是否可以设置默认选择列列表?

php - 使用浏览器和使用命令行时,在 PHP 中执行系统命令不同

php - 使用 PHP pack() 将 WKT 转换为 WKB