选择连续的下一个可用数字

时间:2017-06-22 21:02:39

标签: php

如果我有像这样的数据库

[ id  -    post  -  num ]
[  1        P1       1  ]
[  2        P2       2  ]
[  3        P3       3  ]
[  4        P4       5  ]
[  5        P5       7  ]

现在我有一个像这样的代码

$max_number = 7; // AFTER QUERY
$current_number = $_GET['num']; // = 1

if($current_number < $max_number){
echo "<a href='#'>The {$current_number++} in rating Post</a>";
}

此代码中的问题是,如果主题编号是3并且单击它会给我4号不存在,是否有可能更好地做到这一点?尽可能使用数组。

2 个答案:

答案 0 :(得分:1)

解决方案可能是(在sql中,你必须实现它):

SELECT MIN(num) FROM tab WHERE num>$current_number;

这会为您提供之前的($current_number++)值。

答案 1 :(得分:0)

将所有可用的号码存储在类似

的数组中
$available_numbers= arrray(1,2,3,5,6,7);

根据您的需要更改一些代码。

<?php
$available_numbers= array(1,2,3,5,6,7);
$max_number = 7; // AFTER QUERY
$current_number = 1; // = 1
do{
    if(in_array($current_number, $available_numbers)){
        echo "<a href='#'>The {$current_number} in rating Post</a>";
    }
    $current_number++;
}while($current_number < $max_number);
?>