gpt4 book ai didi

php - 不断增加 MYSQL 结果集

转载 作者:行者123 更新时间:2023-11-29 23:55:19 26 4
gpt4 key购买 nike

我正在尝试增加表中的结果集。

我尝试使用增量显示接下来的三个结果。这工作正常。例如;

current = 5.

It then displays the next three: 6,7,8

It can also display the previous three: 4,3,2

当我达到最后几个或最少几个结果时,问题就出现了。目前将停止;

current = 23

next: 24, 25

我无法弄清楚如何循环到最后或前几个结果。

例如我希望它这样做:

current = 2

display previous three: 1, 25, 24

接下来:

current = 23:

display next three: 24, 25, 1

我将它们作为数组返回。代码:

$test_array = array();

$no = 1;

while($results=mysql_fetch_assoc($test_query))
{
$test_array[] = array('test_id' => $results['id'],
'path' => $results['Path'],
'type' => $results['FileType']
'no' => $no);
$no++;
}

$current_no = 0;

if(is_array($test_array) && count($test_array)>0)
{
foreach($test_array as $key=>$array)
{

if($array['test_id']==intval($db_res['current_id']))
{
$current[] = $array;
$current_no = intval($key+1);
}
else
//error

if(intval($current_no)>0)
{
//Next 3
for($i=0;$i<3;$i++)
{
if(isset($test_array[intval($current_no+$i)]) && is_array($test_array[intval($current_no+$i)]))
{
$next[] = $test_array[intval($current_no+$i)];
}
else
break;
}

//Previous 3
for($i=2;$i<5;$i++)
{
if(isset($test_array[intval($current_no-$i)]) && is_array($test_array[intval($current_no-$i)]))
{
$previous[] = $test_array[intval($current_no-$i)];
}
else
break;
}
break;
}
else
//error
}
}
else
//error

如果有人对如何提供帮助有任何想法,那就太好了!

最佳答案

  1. 查找 $current 的 $key 并设置 $next_key = $prev_key = $key;
  2. 查找最后一个键$max = count($test_array) - 1;
  3. 增加 $next_key 并减少 $prev_key 3 次(并检查是否达到边界):

循环可能看起来像这样。

for ($i = 1; $i <= 3; $i++)
{
$next_key = ($next_key == $max) ? 0 : $next_key + 1;
$prev_key = ($prev_key == 0) ? $max : $prev_key - 1;

$next[] = $test_array[$next_key];
$prev[] = $test_array[$prev_key];
}

关于php - 不断增加 MYSQL 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com