Php 如果值存在于表循环查询中,直到它存在';T

Php 如果值存在于表循环查询中,直到它存在';T,php,mysql,while-loop,Php,Mysql,While Loop,我需要做一个while循环,检查数据库中是否有$key,是否有$key,生成一个新的key并再次检查。这似乎是一个简单的代码部分,但我不能让它工作 几个小时以来,我一直在谷歌上搜索并尝试不同的解决方案,但运气不佳 $key = 'aa';//RandomString(30); $result = mysql_query("SELECT column FROM table WHERE column = '$key'"); $j = 1; while(mysql_num_rows($result)

我需要做一个while循环,检查数据库中是否有$key,是否有$key,生成一个新的key并再次检查。这似乎是一个简单的代码部分,但我不能让它工作

几个小时以来,我一直在谷歌上搜索并尝试不同的解决方案,但运气不佳

$key = 'aa';//RandomString(30);
$result = mysql_query("SELECT column FROM table WHERE column = '$key'");

$j = 1;
while(mysql_num_rows($result)==1){
    $key = 'aa'.$j;//RandomString(30);
    $j++;
}

您需要包括
mysql_query()
中,而
循环。按照目前的方式,每次只查询一次mysql数据库时,都会检查相同的结果

$key = 'aa';//RandomString(30);

$j = 1;
$found = true;
while($found == true){
    $result = mysql_query("SELECT column FROM table WHERE column = '$key'");
    if(mysql_num_rows($result)==0) {
        $found = false;
    } else {
        $key = 'aa'.$j;//RandomString(30);
        $j++;
    }
}
仅供参考,
mysql\uuz
函数已被弃用,因此您应该尝试迁移到mysqli或pdo


此外,如果在这种情况下有大量以
aa
开头的条目,那么这将变得效率低下。最好是找到所有以
aa
开头的条目,然后找到最后一个条目,并将数字递增1。通过这种方式,您可以只使用一个查询,而不是数百或数千个查询。

您需要包含
mysql\u query()
中,而
循环。按照目前的方式,每次只查询一次mysql数据库时,都会检查相同的结果

$key = 'aa';//RandomString(30);

$j = 1;
$found = true;
while($found == true){
    $result = mysql_query("SELECT column FROM table WHERE column = '$key'");
    if(mysql_num_rows($result)==0) {
        $found = false;
    } else {
        $key = 'aa'.$j;//RandomString(30);
        $j++;
    }
}
仅供参考,
mysql\uuz
函数已被弃用,因此您应该尝试迁移到mysqli或pdo


此外,如果在这种情况下有大量以
aa
开头的条目,那么这将变得效率低下。最好是找到所有以
aa
开头的条目,然后找到最后一个条目,并将数字递增1。这样,您就可以只使用一个查询,而不是数百或数千个查询。

谢谢,我在没有if语句的情况下尝试了这个方法,因此只循环了2次。但现在它起作用了!我仍然使用mysql的原因是因为我被强制了。谢谢,我在没有if语句的情况下尝试了这个,因此只循环了2次。但现在它起作用了!我仍然使用mysql的原因是因为我被强制使用了。