这就是我现在正在尝试的方法,但是没有运气

$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再次运行查询,并一直进行到找到一条记录为止,但无法弄清楚该怎么做。

最佳答案

我假设您正在不断检查数据库中的新值。但是,在大规模应用程序中,这是不断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。

关于php - 如何运行查询直到找到一条记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27242808/

10-11 05:00