PHP循环直到返回true

15

我正在生成一个随机代码,并需要检查它是否已经存在于数据库中。我假设这需要一些循环结构。我已经设置好了查询,如果 mysql_num_rows == 0,则需要再次运行一段代码块。

我正在生成一个随机代码,并需要检查它是否已经存在于数据库中。我假设这需要一些循环结构。我已经设置好了查询,如果 mysql_num_rows == 0,则需要再次运行一段代码块。
4个回答

26

使用do...while循环:

do {
  // Your logic
} while (condition);

23
$key = true;

    while($key){
        // Do stuff
        if(mysql_num_rows($result) > 0) $key = false;
    }

1
如果已经存在一行,我需要让它再次运行,所以最后我会将 $key 设置为 true,并在 mysql_num_rows == 0 时将其设置为 false,对吗? - DannyF247

6

这里有一种完全不同的路径:

while(true){
    if(/* Your logic which you expect to be true */){
        break;
    }
}

1
@jisaak 这怎么是一个新问题?它显然是对原始问题的答案。 - Anders
谢谢,我没想到这是可能的。它非常适合我的使用情况。 - Barry

3

简单升级James L.脚本-循环测试数据库中是否存在登录ID。如果存在,将在登录后添加+1:

    $key = true;
    $a = 1;
    $login_test_origin=$login_test;

    while($key){        
    $query_test="SELECT count(*) as 'all'  FROM user WHERE  login='$login_test'";
    $row_test=mysql_fetch_array(mysql_query($query_test));
    $error=$row_test[all];     

            if($error > 0) {
                $key = true;
                $login_test=$login_test_origin.$a;
                $a++;             
                           }

            else { 
                $key = false;
                $login=$login_test;
                 }
        }

echo"Used login ID: $login";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接