Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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在一行中显示两条记录,然后从中间开始重复_Php - Fatal编程技术网

php在一行中显示两条记录,然后从中间开始重复

php在一行中显示两条记录,然后从中间开始重复,php,Php,我试图展示一个多类别(儿童)攀岩比赛的起跑顺序表。PHP/Mysql。有两条车道同时攀爬,A和B。每个参赛者都攀爬两条车道。A车道和B车道的起跑顺序应与A车道相同,错开50%,起跑人数为奇数时向下舍入 示例:假设我有一个包含9个竞争对手的类别,起始数字从101到109。输出起始顺序表应如下所示: Lane A Lane B 101 105 102 106 103 107 104 108

我试图展示一个多类别(儿童)攀岩比赛的起跑顺序表。PHP/Mysql。有两条车道同时攀爬,A和B。每个参赛者都攀爬两条车道。A车道和B车道的起跑顺序应与A车道相同,错开50%,起跑人数为奇数时向下舍入

示例:假设我有一个包含9个竞争对手的类别,起始数字从101到109。输出起始顺序表应如下所示:

  Lane A    Lane B  
   101       105    
   102       106    
   103       107    
   104       108    
   105       109       
   106       101    
   107       102    
   108       103    
   109       104    
有什么想法吗?查询或几个循环或。。。 谢谢

编辑: 查询以按通道A和通道B的顺序获取表:

create temporary table laneA
select * from competitors where category = 1 order by stNo;

create temporary table laneB
select * FROM competitors where category = 1 order by (case when stNo > (select avg(stNo) from competitors )then 1 else 2 end), stNo;

select 1 as rank, x.* from laneA as x
union ALL
select 2 as rank, y.* from laneB as y
order by rank;

drop temporary table laneA;
drop temporary table laneB;

将数据放在一个以零为基的数组中,在其上循环。计算访问第二列中显示的相应元素所需的索引:

$data = range(101, 109); // fake data array, [0 => 101, 1 => 102, ...]
$c = count($data);

for($i=0; $i<$c; ++$i) {
  echo $data[$i] . ' - ' . $data[ ($i + $c / 2) % $c ] . "<br>\n";
}
如果你再加一个,那么你有偶数个项目,它将是

101 - 106
102 - 107
103 - 108
104 - 109
105 - 110
106 - 101
107 - 102
108 - 103
109 - 104
110 - 105

我认为你的问题不是很清楚。到目前为止你试过哪一种?您不能使用简单的
订单依据
?订单依据什么?我做了一个连接查询,显示顺序为101÷109(通道a)和105÷109、101÷104的记录。但我如何在html表中像在示例中一样显示它呢?我想我需要的是像101、105、102、106等那样的顺序,但我不知道怎么做。让B道有一个竞争对手阵列,从阵列前端删除x个竞争对手,并将删除的竞争对手列表附加到阵列的末尾如何?请包括您尝试过的代码,我们在这里提供帮助,不要为你这样做,避免问低强度的问题,阅读以下内容:@SpacePhoenix谢谢,好主意。我理解你的观点,但我需要的是想法,而不是解决方案。
101 - 106
102 - 107
103 - 108
104 - 109
105 - 110
106 - 101
107 - 102
108 - 103
109 - 104
110 - 105