这就是我现在正在尝试但没有运气
$bid = $next - 2;//This subtracts 2 from the number, this number is also auto generated
$preid = $bid;
$query = "SELECT * FROM images where imageid = '$preid'";
$sql = mysqli_query($conn,$query) or die(mysqli_error($conn));
while(mysqli_num_rows($sql) !=0) {
$select_query = "SELECT * FROM images where imageid = '$preid'";
$sql = mysqli_query($conn,$select_query) or die(mysqli_error($conn));
--$preid;
}
假设发生的事情是,如果一条记录不存在,它会从preid中减去1并再次使用新的preid运行查询并继续发生,直到它找到的记录但无法弄清楚如何去做。
答案 0 :(得分:0)
我假设您不断检查数据库是否有新值。但是,在大规模应用程序中,这是一种非常低效的方法来不断ping数据库。 你已经制作了一个变量$ preid但你没有在任何地方使用它 如果我按照你的方式去做那就是我会这样做的
$bid = $next - 2;//This subtracts 2 from the number, this number is also auto generated
$preid = $bid;
$query = "SELECT * FROM images where imageid = '$preid'";
$sql = mysqli_query($conn,$query) or die(mysqli_error($conn));
while(mysqli_num_rows($sql) !=0 || !$preid) { //notice here i added the condition for preid.
$select_query = "SELECT * FROM images where imageid = '$preid'";
$sql = mysqli_query($conn,$select_query) or die(mysqli_error($conn));
--$preid;
}
现在发生的情况是,只要两个条件中的任何一个保持为真,循环就会运行,即从数据库返回一行,或者它将继续搜索,直到 preid 不为0。 / p>
答案 1 :(得分:0)
如果你想测试一个空集,你的while应该在mysqli_num_rows == 0
时运行while(mysqli_num_rows($sql) == 0) {
$select_query = "SELECT * FROM images where imageid = '$preid'";
$sql = mysqli_query($conn,$select_query) or die(mysqli_error($conn));
$preid--;
}
正如@DarkBee在他的评论中提到的那样,这个代码非常容易受到无限循环的影响,只要没有任何条目就会删除你的脚本。